[jboss-cvs] JBossAS SVN: r80965 - trunk/server/src/main/org/jboss/proxy.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Nov 13 18:22:23 EST 2008


Author: anil.saldhana at jboss.com
Date: 2008-11-13 18:22:23 -0500 (Thu, 13 Nov 2008)
New Revision: 80965

Modified:
   trunk/server/src/main/org/jboss/proxy/SecurityActions.java
   trunk/server/src/main/org/jboss/proxy/SecurityInterceptor.java
Log:
JBAS-5988: privileged blocks

Modified: trunk/server/src/main/org/jboss/proxy/SecurityActions.java
===================================================================
--- trunk/server/src/main/org/jboss/proxy/SecurityActions.java	2008-11-13 22:55:05 UTC (rev 80964)
+++ trunk/server/src/main/org/jboss/proxy/SecurityActions.java	2008-11-13 23:22:23 UTC (rev 80965)
@@ -33,7 +33,6 @@
 import org.jboss.security.SecurityContextFactory;
 import org.jboss.security.SecurityContextAssociation;
 
-//$Id$
 
 /**
  * Interface defining the Privileged Blocks 
@@ -107,6 +106,16 @@
       {
          return SecurityContextFactory.createSecurityContext(p,cred, null, sdomain);
       }
+      
+      public void setIncomingRunAs(SecurityContext sc, RunAs incomingRunAs)
+      {
+         sc.setOutgoingRunAs(incomingRunAs);
+      }
+
+      public void setOutgoingRunAs(SecurityContext sc, RunAs outgoingRunAs)
+      {
+         sc.setOutgoingRunAs(outgoingRunAs);
+      }
    };
 
    SecurityActions PRIVILEGED = new SecurityActions()
@@ -205,6 +214,33 @@
             
          }); 
       }
+      
+      public void setIncomingRunAs(final SecurityContext sc, final RunAs incomingRunAs)
+      {
+         AccessController.doPrivileged(new PrivilegedAction<Object>(){
+
+            public Object run()
+            {
+               sc.setIncomingRunAs(incomingRunAs);
+               return null;
+            }
+         }); 
+          
+         
+      }
+
+      public void setOutgoingRunAs(final SecurityContext sc, final RunAs outgoingRunAs)
+      {
+         AccessController.doPrivileged(new PrivilegedAction<Object>(){
+
+            public Object run()
+            {
+               sc.setOutgoingRunAs(outgoingRunAs);
+               return null;
+            }
+         }); 
+          
+      }
    };
 
    Principal getPrincipal();
@@ -219,4 +255,8 @@
    SecurityContext getSecurityContext(); 
    
    void setSecurityContext(SecurityContext sc);  
+   
+   public void setIncomingRunAs(SecurityContext sc, RunAs incomingRunAs);
+   
+   void setOutgoingRunAs(SecurityContext sc, RunAs outgoingRunAs);
 }

Modified: trunk/server/src/main/org/jboss/proxy/SecurityInterceptor.java
===================================================================
--- trunk/server/src/main/org/jboss/proxy/SecurityInterceptor.java	2008-11-13 22:55:05 UTC (rev 80964)
+++ trunk/server/src/main/org/jboss/proxy/SecurityInterceptor.java	2008-11-13 23:22:23 UTC (rev 80965)
@@ -74,8 +74,8 @@
       //Push the caller run-as identity onto the security context 
       if(callerRAI != null)
       {
-         newSc.setOutgoingRunAs(callerRAI);
-         newSc.setIncomingRunAs(callerRAI);
+         sa.setOutgoingRunAs(newSc, callerRAI);
+         sa.setIncomingRunAs(newSc, callerRAI);
       }
       /**
        * Push the security context on the invocation




More information about the jboss-cvs-commits mailing list