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;
}
}
+