maguro      2005/03/09 00:01:01

  Modified:    modules/core/src/java/org/openejb/security
                        EJBRunAsInterceptor.java
                        EJBSecurityInterceptor.java
  Log:

  Fixed getCallerPrincipal()
  
  Revision  Changes    Path
  1.2       +2 -2      
openejb/modules/core/src/java/org/openejb/security/EJBRunAsInterceptor.java
  
  Index: EJBRunAsInterceptor.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/security/EJBRunAsInterceptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EJBRunAsInterceptor.java  1 Mar 2004 07:14:43 -0000       1.1
  +++ EJBRunAsInterceptor.java  9 Mar 2005 05:01:01 -0000       1.2
  @@ -68,7 +68,7 @@
    * <code>Subject</code>.
    * @version $Revision$ $Date$
    */
  -public class EJBRunAsInterceptor implements Interceptor {
  +public final class EJBRunAsInterceptor implements Interceptor {
       private final Interceptor next;
       private final Subject subject;
   
  
  
  
  1.8       +7 -1      
openejb/modules/core/src/java/org/openejb/security/EJBSecurityInterceptor.java
  
  Index: EJBSecurityInterceptor.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/security/EJBSecurityInterceptor.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- EJBSecurityInterceptor.java       5 Mar 2005 03:23:16 -0000       1.7
  +++ EJBSecurityInterceptor.java       9 Mar 2005 05:01:01 -0000       1.8
  @@ -61,6 +61,7 @@
   import org.apache.geronimo.security.ContextManager;
   
   import org.openejb.EJBInvocation;
  +import org.openejb.EJBContextImpl;
   
   
   /**
  @@ -83,9 +84,12 @@
   
       public InvocationResult invoke(Invocation invocation) throws Throwable {
           EJBInvocation ejbInvocation = ((EJBInvocation) invocation);
  +        EJBContextImpl context =  
ejbInvocation.getEJBInstanceContext().getEJBContextImpl();
   
  +        Subject oldCaller = context.getCallerSubject();
           Subject subject = ContextManager.getCurrentCaller();
           String oldPolicyContextID = PolicyContext.getContextID();
  +
           try {
               PolicyContext.setContextID(contextId);
               AccessControlContext accessContext = 
ContextManager.getCurrentContext();
  @@ -94,6 +98,7 @@
                   if (permission != null) 
accessContext.checkPermission(permission);
               }
   
  +            context.setCallerSubject(subject);
               ContextManager.setCurrentCaller(ContextManager.getNextCaller());
   
               return next.invoke(invocation);
  @@ -106,6 +111,7 @@
           } finally {
               PolicyContext.setContextID(oldPolicyContextID);
               ContextManager.setCurrentCaller(subject);
  +            context.setCallerSubject(oldCaller);
           }
       }
   }
  
  
  

Reply via email to