Author: solomax
Date: Mon Nov 11 05:56:27 2013
New Revision: 1540614

URL: http://svn.apache.org/r1540614
Log:
[OPENMEETINGS-491] ability to add custom filter is added to LDAP

Modified:
    
openmeetings/branches/2.x/src/org/apache/openmeetings/ldap/LdapLoginManagement.java
    
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java

Modified: 
openmeetings/branches/2.x/src/org/apache/openmeetings/ldap/LdapLoginManagement.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/2.x/src/org/apache/openmeetings/ldap/LdapLoginManagement.java?rev=1540614&r1=1540613&r2=1540614&view=diff
==============================================================================
--- 
openmeetings/branches/2.x/src/org/apache/openmeetings/ldap/LdapLoginManagement.java
 (original)
+++ 
openmeetings/branches/2.x/src/org/apache/openmeetings/ldap/LdapLoginManagement.java
 Mon Nov 11 05:56:27 2013
@@ -85,32 +85,26 @@ public class LdapLoginManagement {
        public static final String CONFIGKEY_LDAP_ADMIN_DN = "ldap_admin_dn";
        public static final String CONFIGKEY_LDAP_ADMIN_PASSWD = "ldap_passwd";
        public static final String CONFIGKEY_LDAP_SEARCH_SCOPE = 
"ldap_search_base";
-       public static final String CONFIGKEY_LDAP_SERVER_TYPE = 
"ldap_server_type"; // for
-                                                                               
                                                                                
// OpenLDAP
-                                                                               
                                                                                
// use
-                                                                               
                                                                                
// only
+       public static final String CONFIGKEY_LDAP_SERVER_TYPE = 
"ldap_server_type"; // for OpenLDAP use only
        public static final String CONFIGKEY_LDAP_AUTH_TYPE = "ldap_auth_type";
 
        public static final String CONFIGKEY_LDAP_FIELDNAME_USER_PRINCIPAL = 
"field_user_principal";
-       public static final String CONFIGKEY_LDAP_SYNC_PASSWD_OM = 
"ldap_sync_password_to_om"; // 'yes'
-                                                                               
                                                                                
                        // or
-                                                                               
                                                                                
                        // 'no'
+       public static final String CONFIGKEY_LDAP_SYNC_PASSWD_OM = 
"ldap_sync_password_to_om"; // 'yes' or 'no'
 
        public static final String CONFIGKEY_LDAP_USE_LOWER_CASE = 
"ldap_use_lower_case";
        
        public static final String CONFIGKEY_LDAP_TIMEZONE_NAME = 
"ldap_user_timezone";
        
-       /***
-        * for future use (lemeur) public static final String
-        * CONFIGKEY_LDAP_USER_EXTRAFILTER = "ldap_user_extrafilter"; public 
static
-        * final String CONFIGKEY_LDAP_GROUP_FILTER_NUM = 
"ldap_group_filter_num";
-        * public static final String CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX =
-        * "ldap_group_filter_name_"; public static final String
-        * CONFIGKEY_LDAP_GROUP_FILTER_BASE_PREFIX = "ldap_group_filter_base_";
-        * public static final String CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX =
-        * "ldap_group_filter_type_"; public static final String
-        * CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX = "ldap_group_filter_text_";
-        ***/
+       /*
+       //for future use (lemeur)
+       public static final String CONFIGKEY_LDAP_USER_EXTRAFILTER = 
"ldap_user_extrafilter";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_NUM = 
"ldap_group_filter_num";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX = 
"ldap_group_filter_name_";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_BASE_PREFIX = 
"ldap_group_filter_base_";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX = 
"ldap_group_filter_type_";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX = 
"ldap_group_filter_text_";
+       */
+       public static final String CONFIGKEY_LDAP_FILTER_ADD = 
"ldap_filter_add";
 
        // LDAP default attributes mapping
        public static final String LDAP_KEY_LASTNAME = "sn";
@@ -282,30 +276,26 @@ public class LdapLoginManagement {
                // Wether or not we'll store Ldap passwd into OM db
                boolean ldap_sync_passwd_to_om = 
"no".equals(configData.get(CONFIGKEY_LDAP_SYNC_PASSWD_OM));
 
-               /***
-                * for future use (lemeur) // Ldap user filter to refine the 
search
-                * String ldap_user_extrafilter =
-                * configData.get(CONFIGKEY_LDAP_USER_EXTRAFILTER);
-                * 
-                * // Count of Ldap group filters String ldap_group_filter_num =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NUM);
-                * 
-                * // Prefix name of Ldap group filter name String
-                * ldap_group_filter_name_prefix =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
-                * 
-                * // Prefix name of Ldap group filter base String
-                * ldap_group_filter_base_prefix =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
-                * 
-                * // Prefix name of Ldap group filter type String
-                * ldap_group_filter_type_prefix =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX);
-                * 
-                * // Prefix name of Ldap group filter text String
-                * ldap_group_filter_text_prefix =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX);
-                ***/
+               /*
+               //for future use (lemeur)
+               // Ldap user filter to refine the search
+               String ldap_user_extrafilter = 
configData.get(CONFIGKEY_LDAP_USER_EXTRAFILTER);
+               
+               // Count of Ldap group filters 
+               String ldap_group_filter_num = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NUM);
+               
+               // Prefix name of Ldap group filter name
+               String ldap_group_filter_name_prefix = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
+               
+               // Prefix name of Ldap group filter base
+               String ldap_group_filter_base_prefix = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
+               
+               // Prefix name of Ldap group filter type
+               String ldap_group_filter_type_prefix = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX);
+               
+               // Prefix name of Ldap group filter text
+               String ldap_group_filter_text_prefix = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX);
+               */
 
                // Get custom Ldap attributes mapping
                String ldap_user_attr_lastname = 
configData.get(CONFIGKEY_LDAP_KEY_LASTNAME);
@@ -321,7 +311,8 @@ public class LdapLoginManagement {
                String ldap_user_attr_timezone = 
configData.get(CONFIGKEY_LDAP_TIMEZONE_NAME);
                String ldap_user_picture_uri = 
configData.get(CONFIGKEY_LDAP_PICTURE_URI);
                String ldap_use_lower_case = 
configData.get(CONFIGKEY_LDAP_USE_LOWER_CASE);
-               
+               String ldap_auth_type = 
configData.get(CONFIGKEY_LDAP_AUTH_TYPE);
+               String ldap_filter_add = 
configData.get(CONFIGKEY_LDAP_FILTER_ADD);
                
                if (ldap_use_lower_case != null && 
ldap_use_lower_case.equals("true")) {
                        user = user.toLowerCase();
@@ -360,14 +351,13 @@ public class LdapLoginManagement {
                if (ldap_user_attr_timezone == null) {
                        ldap_user_attr_timezone = LDAP_KEY_TIMEZONE;
                }
-
-               // Auth Type
-               String ldap_auth_type = 
configData.get(CONFIGKEY_LDAP_AUTH_TYPE);
-
                if (ldap_auth_type == null) {
                        ldap_auth_type = "";
                }
-
+               if (ldap_filter_add == null) {
+                       ldap_filter_add = "";
+               }
+               
                if (!isValidAuthType(ldap_auth_type)) {
                        log.error("ConfigKey in Ldap Config contains invalid 
auth type : '"
                                        + ldap_auth_type + "' -> Defaulting to "
@@ -377,7 +367,10 @@ public class LdapLoginManagement {
 
                // Filter for Search of UserData
                String ldap_search_filter = "(" + ldap_fieldname_user_principal 
+ "=" + user + ")";
-
+               if (!"".equals(ldap_filter_add)) {
+                       ldap_filter_add = ldap_filter_add.replaceAll(":", "=");
+                       ldap_search_filter = "(&(" + ldap_filter_add + ")(" + 
ldap_fieldname_user_principal + "=" + user + "))";
+               }
                log.debug("Searching userdata with LDAP Search Filter :" + 
ldap_search_filter);
 
                // replace : -> in config = are replaced by : to be able to 
build valid

Modified: 
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java?rev=1540614&r1=1540613&r2=1540614&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
 Mon Nov 11 05:56:27 2013
@@ -81,32 +81,26 @@ public class LdapLoginManagement impleme
        public static final String CONFIGKEY_LDAP_ADMIN_DN = "ldap_admin_dn";
        public static final String CONFIGKEY_LDAP_ADMIN_PASSWD = "ldap_passwd";
        public static final String CONFIGKEY_LDAP_SEARCH_SCOPE = 
"ldap_search_base";
-       public static final String CONFIGKEY_LDAP_SERVER_TYPE = 
"ldap_server_type"; // for
-                                                                               
                                                                                
// OpenLDAP
-                                                                               
                                                                                
// use
-                                                                               
                                                                                
// only
+       public static final String CONFIGKEY_LDAP_SERVER_TYPE = 
"ldap_server_type"; // for OpenLDAP use only
        public static final String CONFIGKEY_LDAP_AUTH_TYPE = "ldap_auth_type";
 
        public static final String CONFIGKEY_LDAP_FIELDNAME_USER_PRINCIPAL = 
"field_user_principal";
-       public static final String CONFIGKEY_LDAP_SYNC_PASSWD_OM = 
"ldap_sync_password_to_om"; // 'yes'
-                                                                               
                                                                                
                        // or
-                                                                               
                                                                                
                        // 'no'
+       public static final String CONFIGKEY_LDAP_SYNC_PASSWD_OM = 
"ldap_sync_password_to_om"; // 'yes' or 'no'
 
        public static final String CONFIGKEY_LDAP_USE_LOWER_CASE = 
"ldap_use_lower_case";
        
        public static final String CONFIGKEY_LDAP_TIMEZONE_NAME = 
"ldap_user_timezone";
        
-       /***
-        * for future use (lemeur) public static final String
-        * CONFIGKEY_LDAP_USER_EXTRAFILTER = "ldap_user_extrafilter"; public 
static
-        * final String CONFIGKEY_LDAP_GROUP_FILTER_NUM = 
"ldap_group_filter_num";
-        * public static final String CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX =
-        * "ldap_group_filter_name_"; public static final String
-        * CONFIGKEY_LDAP_GROUP_FILTER_BASE_PREFIX = "ldap_group_filter_base_";
-        * public static final String CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX =
-        * "ldap_group_filter_type_"; public static final String
-        * CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX = "ldap_group_filter_text_";
-        ***/
+       /*
+       //for future use (lemeur)
+       public static final String CONFIGKEY_LDAP_USER_EXTRAFILTER = 
"ldap_user_extrafilter";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_NUM = 
"ldap_group_filter_num";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX = 
"ldap_group_filter_name_";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_BASE_PREFIX = 
"ldap_group_filter_base_";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX = 
"ldap_group_filter_type_";
+       public static final String CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX = 
"ldap_group_filter_text_";
+       */
+       public static final String CONFIGKEY_LDAP_FILTER_ADD = 
"ldap_filter_add";
 
        // LDAP default attributes mapping
        public static final String LDAP_KEY_LASTNAME = "sn";
@@ -278,30 +272,26 @@ public class LdapLoginManagement impleme
                // Wether or not we'll store Ldap passwd into OM db
                boolean ldap_sync_passwd_to_om = 
"no".equals(configData.get(CONFIGKEY_LDAP_SYNC_PASSWD_OM));
 
-               /***
-                * for future use (lemeur) // Ldap user filter to refine the 
search
-                * String ldap_user_extrafilter =
-                * configData.get(CONFIGKEY_LDAP_USER_EXTRAFILTER);
-                * 
-                * // Count of Ldap group filters String ldap_group_filter_num =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NUM);
-                * 
-                * // Prefix name of Ldap group filter name String
-                * ldap_group_filter_name_prefix =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
-                * 
-                * // Prefix name of Ldap group filter base String
-                * ldap_group_filter_base_prefix =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
-                * 
-                * // Prefix name of Ldap group filter type String
-                * ldap_group_filter_type_prefix =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX);
-                * 
-                * // Prefix name of Ldap group filter text String
-                * ldap_group_filter_text_prefix =
-                * configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX);
-                ***/
+               /*
+               //for future use (lemeur)
+               // Ldap user filter to refine the search
+               String ldap_user_extrafilter = 
configData.get(CONFIGKEY_LDAP_USER_EXTRAFILTER);
+               
+               // Count of Ldap group filters 
+               String ldap_group_filter_num = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NUM);
+               
+               // Prefix name of Ldap group filter name
+               String ldap_group_filter_name_prefix = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
+               
+               // Prefix name of Ldap group filter base
+               String ldap_group_filter_base_prefix = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
+               
+               // Prefix name of Ldap group filter type
+               String ldap_group_filter_type_prefix = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX);
+               
+               // Prefix name of Ldap group filter text
+               String ldap_group_filter_text_prefix = 
configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX);
+               */
 
                // Get custom Ldap attributes mapping
                String ldap_user_attr_lastname = 
configData.get(CONFIGKEY_LDAP_KEY_LASTNAME);
@@ -317,7 +307,8 @@ public class LdapLoginManagement impleme
                String ldap_user_attr_timezone = 
configData.get(CONFIGKEY_LDAP_TIMEZONE_NAME);
                String ldap_user_picture_uri = 
configData.get(CONFIGKEY_LDAP_PICTURE_URI);
                String ldap_use_lower_case = 
configData.get(CONFIGKEY_LDAP_USE_LOWER_CASE);
-               
+               String ldap_auth_type = 
configData.get(CONFIGKEY_LDAP_AUTH_TYPE);
+               String ldap_filter_add = 
configData.get(CONFIGKEY_LDAP_FILTER_ADD);
                
                if (ldap_use_lower_case != null && 
ldap_use_lower_case.equals("true")) {
                        user = user.toLowerCase();
@@ -356,14 +347,13 @@ public class LdapLoginManagement impleme
                if (ldap_user_attr_timezone == null) {
                        ldap_user_attr_timezone = LDAP_KEY_TIMEZONE;
                }
-
-               // Auth Type
-               String ldap_auth_type = 
configData.get(CONFIGKEY_LDAP_AUTH_TYPE);
-
                if (ldap_auth_type == null) {
                        ldap_auth_type = "";
                }
-
+               if (ldap_filter_add == null) {
+                       ldap_filter_add = "";
+               }
+               
                if (!isValidAuthType(ldap_auth_type)) {
                        log.error("ConfigKey in Ldap Config contains invalid 
auth type : '"
                                        + ldap_auth_type + "' -> Defaulting to "
@@ -373,6 +363,10 @@ public class LdapLoginManagement impleme
 
                // Filter for Search of UserData
                String ldap_search_filter = "(" + ldap_fieldname_user_principal 
+ "=" + user + ")";
+               if (!"".equals(ldap_filter_add)) {
+                       ldap_filter_add = ldap_filter_add.replaceAll(":", "=");
+                       ldap_search_filter = "(&(" + ldap_filter_add + ")(" + 
ldap_fieldname_user_principal + "=" + user + "))";
+               }
 
                log.debug("Searching userdata with LDAP Search Filter :" + 
ldap_search_filter);
 


Reply via email to