maguro 2005/03/13 21:12:47
Modified: modules/openejb-builder/src/java/org/openejb/deployment
ContainerSecurityBuilder.java
Log:
Added distinguished names to roles.
Revision Changes Path
1.12 +14 -1
openejb/modules/openejb-builder/src/java/org/openejb/deployment/ContainerSecurityBuilder.java
Index: ContainerSecurityBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/ContainerSecurityBuilder.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ContainerSecurityBuilder.java 12 Mar 2005 17:04:57 -0000 1.11
+++ ContainerSecurityBuilder.java 14 Mar 2005 02:12:47 -0000 1.12
@@ -57,6 +57,7 @@
import java.util.Map;
import java.util.Set;
import javax.security.auth.Subject;
+import javax.security.auth.x500.X500Principal;
import javax.security.jacc.EJBMethodPermission;
import javax.security.jacc.EJBRoleRefPermission;
@@ -69,6 +70,7 @@
import org.apache.geronimo.security.deploy.Realm;
import org.apache.geronimo.security.deploy.Role;
import org.apache.geronimo.security.deploy.Security;
+import org.apache.geronimo.security.deploy.DistinguishedName;
import org.apache.geronimo.security.util.ConfigurationUtil;
import org.apache.geronimo.xbeans.j2ee.AssemblyDescriptorType;
import org.apache.geronimo.xbeans.j2ee.ExcludeListType;
@@ -344,7 +346,6 @@
while (principals.hasNext()) {
Principal principal = (Principal) principals.next();
- //todo: needs a proper login domain name to go with the
realm name
RealmPrincipal realmPrincipal =
ConfigurationUtil.generateRealmPrincipal(principal, realm.getRealmName());
if (realmPrincipal == null) throw new
DeploymentException("Unable to create realm principal");
@@ -353,6 +354,18 @@
if (principal.isDesignatedRunAs())
roleDesignate.getPrincipals().add(realmPrincipal);
}
}
+
+ for (Iterator names = role.getDNames().iterator();
names.hasNext();) {
+ DistinguishedName dn = (DistinguishedName) names.next();
+
+ X500Principal x500Principal =
ConfigurationUtil.generateX500Principal(dn.getName());
+
+ principalSet.add(x500Principal);
+ if (dn.isDesignatedRunAs()) {
+ roleDesignate.getPrincipals().add(x500Principal);
+ }
+ }
+
Set roleMapping = (Set)
securityConfiguration.getRoleMapping().get(roleName);
if (roleMapping == null) {
roleMapping = new HashSet();