Author: eric
Date: Sun Mar  8 16:40:46 2015
New Revision: 1665049

URL: http://svn.apache.org/r1665049
Log:
LDAP group authentication filter to authenticate users, patch contributed by 
Robert Munn (JAMES-1569)

Modified:
    
james/server/trunk/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java

Modified: 
james/server/trunk/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java?rev=1665049&r1=1665048&r2=1665049&view=diff
==============================================================================
--- 
james/server/trunk/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
 (original)
+++ 
james/server/trunk/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
 Sun Mar  8 16:40:46 2015
@@ -41,6 +41,7 @@ import javax.naming.ldap.LdapContext;
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.lang.StringUtils;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.user.api.UsersRepository;
@@ -252,6 +253,12 @@ public class ReadOnlyUsersLDAPRepository
     private String userObjectClass;
 
     /**
+     * The value of this field is taken from the configuration attribute 
"filter".
+     * This is the search filter to use to find the desired user. 
+     */
+    private String filter;
+    
+    /**
      * This is the LDAP context/sub-context within which to search for user
      * entities. The value of this field is taken from the configuration
      * attribute "userBase".
@@ -352,6 +359,9 @@ public class ReadOnlyUsersLDAPRepository
         }
         restriction = new ReadOnlyLDAPGroupRestriction(restrictionConfig);
 
+        //see if there is a filter argument
+        filter = configuration.getString("[@filter]");
+
     }
 
     /**
@@ -534,7 +544,14 @@ public class ReadOnlyUsersLDAPRepository
 
       StringBuilder builderFilter = new StringBuilder("(&(");
       
builderFilter.append(userIdAttribute).append("=").append(name).append(")")
-                   
.append("(objectClass=").append(userObjectClass).append("))");
+                   
.append("(objectClass=").append(userObjectClass).append(")");
+
+     if(StringUtils.isNotEmpty(filter)){
+        builderFilter.append(filter).append(")");
+        }
+     else{
+        builderFilter.append(")");
+     }
 
       NamingEnumeration<SearchResult> sr = ldapContext.search(userBase, 
builderFilter.toString(),
           sc);
@@ -744,4 +761,4 @@ public class ReadOnlyUsersLDAPRepository
         return false;
     }
 
-}
\ No newline at end of file
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to