[jboss-cvs] JBossAS SVN: r99007 - in branches/JBPAPP_5_0: server/src/main/org/jboss/ejb/plugins/security and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 4 17:52:22 EST 2010


Author: sguilhen at redhat.com
Date: 2010-01-04 17:52:21 -0500 (Mon, 04 Jan 2010)
New Revision: 99007

Modified:
   branches/JBPAPP_5_0/component-matrix/pom.xml
   branches/JBPAPP_5_0/server/src/main/org/jboss/ejb/plugins/security/PreSecurityInterceptor.java
   branches/JBPAPP_5_0/server/src/main/org/jboss/ejb/plugins/security/SecurityActions.java
Log:
JBPAPP-3329: porting JBAS-7037 fix to EAP branch

Modified: branches/JBPAPP_5_0/component-matrix/pom.xml
===================================================================
--- branches/JBPAPP_5_0/component-matrix/pom.xml	2010-01-04 21:27:19 UTC (rev 99006)
+++ branches/JBPAPP_5_0/component-matrix/pom.xml	2010-01-04 22:52:21 UTC (rev 99007)
@@ -89,7 +89,7 @@
     <version.org.jboss.naming>5.0.3.GA</version.org.jboss.naming>
     <version.org.jboss.reflect>2.0.2.GA</version.org.jboss.reflect>
     <version.org.jboss.remoting>2.5.2</version.org.jboss.remoting>
-    <version.org.jboss.security>2.0.4.SP2</version.org.jboss.security>
+    <version.org.jboss.security>2.0.4.SP3</version.org.jboss.security>
     <version.org.jboss.security.negotiation>2.0.3.SP2</version.org.jboss.security.negotiation>
     <version.org.jboss.threads>1.0.0.GA</version.org.jboss.threads>
     <version.org.jboss.vfs>2.1.3.SP1</version.org.jboss.vfs>

Modified: branches/JBPAPP_5_0/server/src/main/org/jboss/ejb/plugins/security/PreSecurityInterceptor.java
===================================================================
--- branches/JBPAPP_5_0/server/src/main/org/jboss/ejb/plugins/security/PreSecurityInterceptor.java	2010-01-04 21:27:19 UTC (rev 99006)
+++ branches/JBPAPP_5_0/server/src/main/org/jboss/ejb/plugins/security/PreSecurityInterceptor.java	2010-01-04 22:52:21 UTC (rev 99007)
@@ -101,6 +101,7 @@
       
       log.trace("process:isInvoke="+isInvoke + " bean="+ container.getServiceName());
       SecurityIdentity si = null;
+      String incomingDomain = null;
       Method m = mi.getMethod();
       boolean isEjbTimeOutMethod =  m!= null && m.getName().equals(timedObjectMethod);
       //For local ejb invocations
@@ -110,10 +111,15 @@
          //Cache the security context
          SecurityContext sc = SecurityActions.getSecurityContext();
          if(sc != null)
-           si = SecurityActions.getSecurityIdentity(sc); 
+         {
+           si = SecurityActions.getSecurityIdentity(sc);
+           incomingDomain = sc.getSecurityDomain();
+         }
          
          SecurityActions.setSecurityManagement(sc, container.getSecurityManagement());
-
+         // set the container's security domain in the security context
+         SecurityActions.setSecurityDomain(sc, this.securityDomain);
+         
          log.trace("SecurityIdentity="+SecurityActions.trace(si));
          //Set the security context on the invocation
          mi.setSecurityContext(sc); 
@@ -139,7 +145,9 @@
       { 
          SecurityActions.popCallerRunAsIdentity();
          if(mi.isLocal() && si != null)
-            SecurityActions.setSecurityIdentity(SecurityActions.getSecurityContext(), si); 
+            SecurityActions.setSecurityIdentity(SecurityActions.getSecurityContext(), si);
+         if(mi.isLocal() && incomingDomain != null)
+        	 SecurityActions.setSecurityDomain(SecurityActions.getSecurityContext(), incomingDomain);
          log.trace("Exit process():isInvoke="+isInvoke);
       } 
    }

Modified: branches/JBPAPP_5_0/server/src/main/org/jboss/ejb/plugins/security/SecurityActions.java
===================================================================
--- branches/JBPAPP_5_0/server/src/main/org/jboss/ejb/plugins/security/SecurityActions.java	2010-01-04 21:27:19 UTC (rev 99006)
+++ branches/JBPAPP_5_0/server/src/main/org/jboss/ejb/plugins/security/SecurityActions.java	2010-01-04 22:52:21 UTC (rev 99007)
@@ -143,6 +143,18 @@
       );
    }
    
+   static void setSecurityDomain(final SecurityContext sc, final String domain)
+   {
+	   AccessController.doPrivileged(new PrivilegedAction<Object>()
+	   {
+		  public Object run() 
+		  {
+			sc.setSecurityDomain(domain);  
+			return null;
+		  } 
+	   });
+   }
+   
    static String trace(final SecurityContext sc)
    {
       return AccessController.doPrivileged(new PrivilegedAction<String>()




More information about the jboss-cvs-commits mailing list