[jboss-cvs] JBossAS SVN: r58839 - trunk/tomcat/src/main/org/jboss/web/tomcat/security/authorization/delegates

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Dec 4 13:08:17 EST 2006


Author: anil.saldhana at jboss.com
Date: 2006-12-04 13:08:16 -0500 (Mon, 04 Dec 2006)
New Revision: 58839

Modified:
   trunk/tomcat/src/main/org/jboss/web/tomcat/security/authorization/delegates/WebJACCPolicyModuleDelegate.java
Log:
merge fro JEE_TCK branch -r 57088:HEAD

Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/security/authorization/delegates/WebJACCPolicyModuleDelegate.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/security/authorization/delegates/WebJACCPolicyModuleDelegate.java	2006-12-04 14:40:50 UTC (rev 58838)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/security/authorization/delegates/WebJACCPolicyModuleDelegate.java	2006-12-04 18:08:16 UTC (rev 58839)
@@ -41,6 +41,7 @@
 import org.apache.catalina.connector.Response;
 import org.apache.catalina.deploy.SecurityConstraint;
 import org.jboss.logging.Logger;
+import org.jboss.security.AuthorizationManager;
 import org.jboss.security.authorization.AuthorizationContext;
 import org.jboss.security.authorization.PolicyRegistration;
 import org.jboss.security.authorization.Resource;
@@ -61,6 +62,7 @@
 public class WebJACCPolicyModuleDelegate extends AuthorizationModuleDelegate
 {   
    private Policy policy = Policy.getPolicy();
+   private AuthorizationManager authorizationManager;
 
    public WebJACCPolicyModuleDelegate()
    {  
@@ -80,6 +82,11 @@
 
       if(map.size() == 0)
          throw new IllegalStateException("Map from the Resource is size zero");
+      //Get the Authorization Manager
+      authorizationManager = (AuthorizationManager)map.get(ResourceKeys.AUTHORIZATION_MANAGER);
+      if(authorizationManager == null)
+         throw new IllegalStateException("Authorization Manager is null");
+      
       //Get the Catalina Request Object
       Request request = (Request)map.get(ResourceKeys.WEB_REQUEST);
       Response response = (Response)map.get(ResourceKeys.WEB_RESPONSE);
@@ -163,6 +170,7 @@
    {  
       // Get the caller principals, its null if there is no caller
       Principal[] principals = null;
+      /*
       if( caller != null )
       {
          if( trace )
@@ -170,7 +178,17 @@
          Set principalsSet = caller.getPrincipals();
          principals = new Principal[principalsSet.size()];
          principalsSet.toArray(principals);
+      }*/
+      
+      //Previously we relied on principals in the subject. Now we use
+      //the security context roles
+      if(authorizationManager != null)
+      { 
+         Set<Principal> roleset = authorizationManager.getUserRoles(requestPrincpal);
+         principals = new Principal[roleset.size()];
+         roleset.toArray(principals); 
       }
+      
       return checkSecurityAssociation(perm, principals);
    }
    
@@ -235,7 +253,7 @@
    }
 
    /**
-    * Perform hasRole check
+    * Perform hasRole check 
     * @param principal
     * @param role
     * @param roles




More information about the jboss-cvs-commits mailing list