Author: ffang
Date: Tue May 28 07:22:27 2013
New Revision: 1486789
URL: http://svn.apache.org/r1486789
Log:
[KARAF-2344]ensure LDAPLoginModule can retrieve multiple roles assigned to a
specific user
Modified:
karaf/trunk/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
Modified:
karaf/trunk/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java?rev=1486789&r1=1486788&r2=1486789&view=diff
==============================================================================
---
karaf/trunk/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
(original)
+++
karaf/trunk/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/ldap/LDAPLoginModule.java
Tue May 28 07:22:27 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());