[Jboss-cvs] JBossAS SVN: r56808 - branches/Branch_4_0/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 13:40:10 EDT 2006
Author: scott.stark at jboss.org
Date: 2006-09-13 13:40:07 -0400 (Wed, 13 Sep 2006)
New Revision: 56808
Modified:
branches/Branch_4_0/security/src/main/org/jboss/security/auth/spi/LdapExtLoginModule.java
branches/Branch_4_0/security/src/main/org/jboss/security/auth/spi/LdapLoginModule.java
Log:
JBAS-3653, retrieve all roles from the roleDN context when roleAttributeIsDN=true
Modified: branches/Branch_4_0/security/src/main/org/jboss/security/auth/spi/LdapExtLoginModule.java
===================================================================
--- branches/Branch_4_0/security/src/main/org/jboss/security/auth/spi/LdapExtLoginModule.java 2006-09-13 17:39:10 UTC (rev 56807)
+++ branches/Branch_4_0/security/src/main/org/jboss/security/auth/spi/LdapExtLoginModule.java 2006-09-13 17:40:07 UTC (rev 56808)
@@ -425,36 +425,35 @@
for (int n = 0; n < roles.size(); n ++)
{
String roleName = (String) roles.get(n);
- try
- {
- if (roleAttributeIsDN)
- {
- // Query the roleDN location for the value of roleNameAttributeID
- String roleDN = roleName;
- String[] returnAttribute = {roleNameAttributeID};
- log.trace("Using roleDN: " + roleDN);
- try
- {
- result = ctx.getAttributes(roleDN, returnAttribute);
- if (result.get(roleNameAttributeID) != null)
- {
- roleName = result.get(roleNameAttributeID).get().toString();
- }
- }
- catch (NamingException e)
- {
- log.trace("Failed to query roleNameAttrName", e);
- }
- }
-
- 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);
- }
+ if (roleAttributeIsDN)
+ {
+ // Query the roleDN location for the value of roleNameAttributeID
+ String roleDN = roleName;
+ String[] returnAttribute = {roleNameAttributeID};
+ log.trace("Using roleDN: " + roleDN);
+ try
+ {
+ Attributes result2 = ctx.getAttributes(roleDN, returnAttribute);
+ Attribute roles2 = result2.get(roleNameAttributeID);
+ if( roles2 != null )
+ {
+ for(int m = 0; m < roles2.size(); m ++)
+ {
+ roleName = (String) roles2.get(m);
+ addRole(roleName);
+ }
+ }
+ }
+ catch (NamingException e)
+ {
+ log.trace("Failed to query roleNameAttrName", e);
+ }
+ }
+ else
+ {
+ // The role attribute value is the role name
+ addRole(roleName);
+ }
}
}
@@ -536,4 +535,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);
+ }
+ }
+ }
}
Modified: branches/Branch_4_0/security/src/main/org/jboss/security/auth/spi/LdapLoginModule.java
===================================================================
--- branches/Branch_4_0/security/src/main/org/jboss/security/auth/spi/LdapLoginModule.java 2006-09-13 17:39:10 UTC (rev 56807)
+++ branches/Branch_4_0/security/src/main/org/jboss/security/auth/spi/LdapLoginModule.java 2006-09-13 17:40:07 UTC (rev 56808)
@@ -430,10 +430,15 @@
log.trace("Following roleDN: " + roleDN);
try
{
- Attributes 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)
@@ -445,22 +450,8 @@
{
// The role attribute value is the role name
roleName = value.toString();
+ addRole(roleName);
}
-
- if (roleName != null)
- {
- try
- {
- Principal p = super.createIdentity(roleName);
- if( trace )
- log.trace("Assign user to role " + roleName);
- userRoles.addMember(p);
- }
- catch (Exception e)
- {
- log.debug("Failed to create principal: " + roleName, e);
- }
- }
}
}
answer.close();
@@ -474,4 +465,21 @@
// Close the context to release the connection
ctx.close();
}
+
+ 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