User: oconnor 
  Date: 00/08/21 11:11:48

  Modified:    src/main/org/jboss/system SecurityAssociation.java
  Log:
  Security propagates from calls made within an EJB.
  
  Revision  Changes    Path
  1.2       +25 -5     jboss/src/main/org/jboss/system/SecurityAssociation.java
  
  Index: SecurityAssociation.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/system/SecurityAssociation.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SecurityAssociation.java  2000/08/06 21:52:44     1.1
  +++ SecurityAssociation.java  2000/08/21 18:11:47     1.2
  @@ -9,31 +9,50 @@
   
   import java.security.Principal;
   
  -public class SecurityAssociation
  +/**
  + *      <description> 
  + *      
  + *      @see <related>
  + *      @author Daniel O'Connor ([EMAIL PROTECTED])
  + */
  +
  +public final class SecurityAssociation
   {
       private static boolean server;
       private static Principal principal;
       private static Object credential;
  +    private static ThreadLocal thread_principal = new ThreadLocal();
  +    private static ThreadLocal thread_credential = new ThreadLocal();
   
       public static Principal getPrincipal()
       {
  -      return principal;
  +      if (server)
  +        return (Principal) thread_principal.get();
  +      else
  +        return principal;
       }
   
       public static Object getCredential()
       {
  -      return credential;
  +      if (server)
  +        return thread_credential.get();
  +      else
  +        return credential;
       }
   
       public static void setPrincipal( Principal principal )
       {
  -      if (!server)
  +      if (server)
  +        thread_principal.set( principal );
  +      else
           SecurityAssociation.principal = principal;
       }
   
       public static void setCredential( Object credential )
       {
  -      if (!server)
  +      if (server)
  +        thread_credential.set( credential );
  +      else
           SecurityAssociation.credential = credential;
       }
   
  @@ -42,3 +61,4 @@
         server = true;
       }
   }
  +
  
  
  

Reply via email to