maguro 2004/07/30 15:03:45
Modified: modules/core/src/java/org/openejb/deployment
OpenEJBModuleBuilder.java
Log:
Client's identity should be associated with the thread, not the JNDI context.
Revision Changes Path
1.16 +25 -1
openejb/modules/core/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java
Index: OpenEJBModuleBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- OpenEJBModuleBuilder.java 27 Jul 2004 02:28:51 -0000 1.15
+++ OpenEJBModuleBuilder.java 30 Jul 2004 19:03:44 -0000 1.16
@@ -112,6 +112,8 @@
import org.apache.geronimo.naming.jmx.JMXReferenceFactory;
import org.apache.geronimo.schema.SchemaConversionUtils;
import org.apache.geronimo.security.RealmPrincipal;
+import org.apache.geronimo.security.GeronimoSecurityException;
+import org.apache.geronimo.security.PrimaryRealmPrincipal;
import org.apache.geronimo.security.deploy.DefaultPrincipal;
import org.apache.geronimo.security.deploy.Principal;
import org.apache.geronimo.security.deploy.Realm;
@@ -1420,6 +1422,11 @@
builder.setUseContextHandler(security.isUseContextHandler());
/**
+ * Add the default subject
+ */
+ builder.setDefaultSubject(createDefaultSubject(security));
+
+ /**
* JACC v1.0 section 3.1.5.1
*/
MethodPermissionType[] methodPermissions =
assemblyDescriptor.getMethodPermissionArray();
@@ -1577,6 +1584,23 @@
while (enum.hasMoreElements()) {
permissions.add((Permission) enum.nextElement());
}
+ }
+
+ private static Subject createDefaultSubject(Security security) {
+
+ Subject defaultSubject = new Subject();
+
+ DefaultPrincipal principal = security.getDefaultPrincipal();
+
+ RealmPrincipal realmPrincipal =
ConfigurationUtil.generateRealmPrincipal(principal.getPrincipal(),
principal.getRealmName());
+ if (realmPrincipal == null) throw new GeronimoSecurityException("Unable to
create realm principal");
+ PrimaryRealmPrincipal primaryRealmPrincipal =
ConfigurationUtil.generatePrimaryRealmPrincipal(principal.getPrincipal(),
principal.getRealmName());
+ if (primaryRealmPrincipal == null) throw new
GeronimoSecurityException("Unable to create primary realm principal");
+
+ defaultSubject.getPrincipals().add(realmPrincipal);
+ defaultSubject.getPrincipals().add(primaryRealmPrincipal);
+
+ return defaultSubject;
}
/**