Author: ffang
Date: Tue May 28 07:19:45 2013
New Revision: 1486786

URL: http://svn.apache.org/r1486786
Log:
[KARAF-2344]ensure LDAPLoginModule can retrieve multiple roles assigned to a 
specific user

Modified:
    
karaf/branches/karaf-2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java

Modified: 
karaf/branches/karaf-2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
URL: 
http://svn.apache.org/viewvc/karaf/branches/karaf-2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java?rev=1486786&r1=1486785&r2=1486786&view=diff
==============================================================================
--- 
karaf/branches/karaf-2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
 (original)
+++ 
karaf/branches/karaf-2.x/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
 Tue May 28 07:19:45 2013
@@ -253,12 +253,18 @@ public class LDAPLoginModule extends Abs
             logger.debug("  filter: " + roleFilter);
             NamingEnumeration namingEnumeration = context.search(roleBaseDN, 
roleFilter, controls);
             while (namingEnumeration.hasMore()) {
-                SearchResult result = (SearchResult) namingEnumeration.next();
+                SearchResult result = (SearchResult)namingEnumeration.next();
                 Attributes attributes = result.getAttributes();
-                String role = (String) attributes.get(roleNameAttribute).get();
-                if (role != null) {
-                    principals.add(new RolePrincipal(role));
+                Attribute roles = attributes.get(roleNameAttribute);
+                if (roles != null) {
+                    for (int i = 0; i < roles.size(); i++) {
+                        String role = (String)roles.get(i);
+                        if (role != null) {
+                            principals.add(new RolePrincipal(role));
+                        }
+                    }
                 }
+
             }
         } catch (Exception e) {
             throw new LoginException("Can't get user " + user + " roles: " + 
e.getMessage());


Reply via email to