[Jboss-cvs] JBossAS SVN: r56801 - branches/JBoss_4_0_3_SP1_JBAS-3650/security/src/main/org/jboss/security/auth/spi
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Sep 13 12:52:18 EDT 2006
Author: scott.stark at jboss.org
Date: 2006-09-13 12:52:16 -0400 (Wed, 13 Sep 2006)
New Revision: 56801
Modified:
branches/JBoss_4_0_3_SP1_JBAS-3650/security/src/main/org/jboss/security/auth/spi/LdapExtLoginModule.java
Log:
Deal correctly with a roleDN location that has multiple roleNameAttributeID values.
Modified: branches/JBoss_4_0_3_SP1_JBAS-3650/security/src/main/org/jboss/security/auth/spi/LdapExtLoginModule.java
===================================================================
--- branches/JBoss_4_0_3_SP1_JBAS-3650/security/src/main/org/jboss/security/auth/spi/LdapExtLoginModule.java 2006-09-13 16:06:55 UTC (rev 56800)
+++ branches/JBoss_4_0_3_SP1_JBAS-3650/security/src/main/org/jboss/security/auth/spi/LdapExtLoginModule.java 2006-09-13 16:52:16 UTC (rev 56801)
@@ -435,10 +435,15 @@
log.trace("Using roleDN: " + roleDN);
try
{
- result = ctx.getAttributes(roleDN, returnAttribute);
- if (result.get(roleNameAttributeID) != null)
+ Attributes result2 = ctx.getAttributes(roleDN, returnAttribute);
+ Attribute roles2 = result2.get(roleNameAttributeID);
+ if( roles2 != null )
{
- roleName = result.get(roleNameAttributeID).get().toString();
+ for(int m = 0; m < roles2.size(); m ++)
+ {
+ roleName = (String) roles2.get(m);
+ addRole(roleName);
+ }
}
}
catch (NamingException e)
@@ -446,10 +451,10 @@
log.trace("Failed to query roleNameAttrName", e);
}
}
-
- Principal p = super.createIdentity(roleName);
- log.trace("Assign user to role " + roleName);
- userRoles.addMember(p);
+ else
+ {
+ addRole(roleName);
+ }
}
catch (Exception e)
{
@@ -536,4 +541,21 @@
}
return result;
}
+
+ private void addRole(String roleName)
+ {
+ if (roleName != null)
+ {
+ try
+ {
+ Principal p = super.createIdentity(roleName);
+ log.trace("Assign user to role " + roleName);
+ userRoles.addMember(p);
+ }
+ catch (Exception e)
+ {
+ log.debug("Failed to create principal: " + roleName, e);
+ }
+ }
+ }
}
More information about the jboss-cvs-commits
mailing list