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;
       }
   
       /**
  
  
  

Reply via email to