You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/01/13 10:49:57 UTC
svn commit: r1724379 -
/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapOptions.java
Author: solomax
Date: Wed Jan 13 09:49:56 2016
New Revision: 1724379
URL: http://svn.apache.org/viewvc?rev=1724379&view=rev
Log:
[OPENMEETINGS-1256] missing file is added
Added:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapOptions.java
Added: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapOptions.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapOptions.java?rev=1724379&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapOptions.java (added)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapOptions.java Wed Jan 13 09:49:56 2016
@@ -0,0 +1,141 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.core.ldap;
+
+import static org.apache.openmeetings.core.ldap.LdapLoginManagement.CONFIGKEY_LDAP_KEY_PICTURE_URI;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Properties;
+
+import org.apache.directory.api.ldap.model.message.AliasDerefMode;
+import org.apache.directory.api.ldap.model.message.SearchScope;
+import org.apache.openmeetings.core.ldap.LdapLoginManagement.AuthType;
+import org.apache.openmeetings.core.ldap.LdapLoginManagement.GroupMode;
+import org.apache.openmeetings.core.ldap.LdapLoginManagement.Provisionning;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class LdapOptions {
+ private static final Logger log = Red5LoggerFactory.getLogger(LdapOptions.class, webAppRootKey);
+ private final static String EMPTY_FORMAT = "%s";
+ private static final String CONFIGKEY_LDAP_HOST = "ldap_conn_host";
+ private static final String CONFIGKEY_LDAP_PORT = "ldap_conn_port";
+ private static final String CONFIGKEY_LDAP_SECURE = "ldap_conn_secure";
+ private static final String CONFIGKEY_LDAP_ADMIN_DN = "ldap_admin_dn";
+ private static final String CONFIGKEY_LDAP_ADMIN_PASSWD = "ldap_passwd";
+ private static final String CONFIGKEY_LDAP_AUTH_TYPE = "ldap_auth_type";
+ private static final String CONFIGKEY_LDAP_PROV_TYPE = "ldap_provisionning";
+ private static final String CONFIGKEY_LDAP_USE_LOWER_CASE = "ldap_use_lower_case";
+ private static final String CONFIGKEY_LDAP_USE_ADMIN_4ATTRS = "ldap_use_admin_to_get_attrs";
+ private static final String CONFIGKEY_LDAP_DEREF_MODE = "ldap_deref_mode";
+ private static final String CONFIGKEY_LDAP_GROUP_MODE = "ldap_group_mode";
+ private static final String CONFIGKEY_LDAP_SEARCH_BASE = "ldap_search_base";
+ private static final String CONFIGKEY_LDAP_SEARCH_QUERY = "ldap_search_query";
+ private static final String CONFIGKEY_LDAP_SEARCH_SCOPE = "ldap_search_scope";
+ private static final String CONFIGKEY_LDAP_SYNC_PASSWD_OM = "ldap_sync_password_to_om"; // 'true' or 'false'
+ static final String CONFIGKEY_LDAP_TIMEZONE_NAME = "ldap_user_timezone";
+ private static final String CONFIGKEY_LDAP_USERDN_FORMAT = "ldap_userdn_format";
+ private static final String CONFIGKEY_LDAP_GROUP_QUERY = "ldap_group_query";
+ private static final String CONFIGKEY_LDAP_IMPORT_QUERY = "ldap_import_query";
+
+ AuthType type = AuthType.SIMPLEBIND;
+ Provisionning prov = Provisionning.AUTOCREATE;
+ AliasDerefMode derefMode = AliasDerefMode.DEREF_ALWAYS;
+ GroupMode groupMode = GroupMode.NONE;
+ boolean useLowerCase = false;
+ boolean useAdminForAttrs = true;
+ String host = null;
+ int port = 389;
+ boolean secure = false;
+ String adminDn = null;
+ String adminPasswd = null;
+ String searchBase = "";
+ String searchQuery = EMPTY_FORMAT;
+ SearchScope scope = SearchScope.ONELEVEL;
+ boolean syncPasswd = false;
+ String tz = null;
+ String groupQuery = EMPTY_FORMAT;
+ String userDn = EMPTY_FORMAT;
+ String pictureUri = null;
+ String importQuery = null;
+
+ public LdapOptions(Properties config) {
+ String ldap_use_lower_case = config.getProperty(CONFIGKEY_LDAP_USE_LOWER_CASE, "false");
+ useLowerCase = "true".equals(ldap_use_lower_case);
+
+ String ldap_auth_type = config.getProperty(CONFIGKEY_LDAP_AUTH_TYPE, "");
+ try {
+ type = AuthType.valueOf(ldap_auth_type);
+ } catch (Exception e) {
+ log.error(String.format("ConfigKey in Ldap Config contains invalid auth type : '%s' -> Defaulting to %s", ldap_auth_type, type));
+ }
+
+ String ldap_prov_type = config.getProperty(CONFIGKEY_LDAP_PROV_TYPE, "");
+ try {
+ prov = Provisionning.valueOf(ldap_prov_type);
+ } catch (Exception e) {
+ log.error(String.format("ConfigKey in Ldap Config contains invalid provisionning type : '%s' -> Defaulting to %s", ldap_prov_type, prov));
+ }
+
+ String ldap_deref_mode = config.getProperty(CONFIGKEY_LDAP_DEREF_MODE, "");
+ try {
+ derefMode = AliasDerefMode.getDerefMode(ldap_deref_mode);
+ } catch (Exception e) {
+ log.error(String.format("ConfigKey in Ldap Config contains invalid deref mode : '%s' -> Defaulting to %s", ldap_deref_mode, derefMode));
+ }
+
+ if (AuthType.NONE == type && Provisionning.NONE == prov) {
+ throw new RuntimeException("Both AuthType and Provisionning are NONE!");
+ }
+ try {
+ useAdminForAttrs = "true".equals(config.getProperty(CONFIGKEY_LDAP_USE_ADMIN_4ATTRS, ""));
+ } catch (Exception e) {
+ //no-op
+ }
+ try {
+ groupMode = GroupMode.valueOf(config.getProperty(CONFIGKEY_LDAP_GROUP_MODE, "NONE"));
+ } catch (Exception e) {
+ //no-op
+ }
+ if (AuthType.NONE == type && !useAdminForAttrs) {
+ throw new RuntimeException("Unable to get Attributes, please change Auth type and/or Use Admin to get attributes");
+ }
+
+ // Connection URL
+ host = config.getProperty(CONFIGKEY_LDAP_HOST);
+ port = Integer.parseInt(config.getProperty(CONFIGKEY_LDAP_PORT, "389"));
+ secure = "true".equals(config.getProperty(CONFIGKEY_LDAP_SECURE, "false"));
+
+ // Username for LDAP SERVER himself
+ adminDn = config.getProperty(CONFIGKEY_LDAP_ADMIN_DN);
+
+ // Password for LDAP SERVER himself
+ adminPasswd = config.getProperty(CONFIGKEY_LDAP_ADMIN_PASSWD);
+
+ searchBase = config.getProperty(CONFIGKEY_LDAP_SEARCH_BASE, "");
+ searchQuery = config.getProperty(CONFIGKEY_LDAP_SEARCH_QUERY, EMPTY_FORMAT);
+ scope = SearchScope.valueOf(config.getProperty(CONFIGKEY_LDAP_SEARCH_SCOPE, SearchScope.ONELEVEL.name()));
+ syncPasswd = "true".equals(config.getProperty(CONFIGKEY_LDAP_SYNC_PASSWD_OM, ""));
+ tz = config.getProperty(CONFIGKEY_LDAP_TIMEZONE_NAME, null);
+ groupQuery = config.getProperty(CONFIGKEY_LDAP_GROUP_QUERY, EMPTY_FORMAT);
+ userDn = config.getProperty(CONFIGKEY_LDAP_USERDN_FORMAT, EMPTY_FORMAT);
+ pictureUri = config.getProperty(CONFIGKEY_LDAP_KEY_PICTURE_URI, null);
+ importQuery = config.getProperty(CONFIGKEY_LDAP_IMPORT_QUERY, "(objectClass=*)");
+ }
+}