[jboss-cvs] JBossAS SVN: r74553 - projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 13 17:33:18 EDT 2008


Author: anil.saldhana at jboss.com
Date: 2008-06-13 17:33:18 -0400 (Fri, 13 Jun 2008)
New Revision: 74553

Modified:
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/SubjectActions.java
Log:
SECURITY-235: relax the requirement on JACC subject

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java	2008-06-13 21:22:47 UTC (rev 74552)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java	2008-06-13 21:33:18 UTC (rev 74553)
@@ -24,7 +24,6 @@
 import static org.jboss.security.SecurityConstants.ROLES_IDENTIFIER;
 
 import java.security.Principal;
-import java.security.PrivilegedActionException;
 import java.security.acl.Group;
 import java.util.Enumeration;
 import java.util.HashMap;
@@ -38,7 +37,7 @@
 
 import javax.security.auth.Subject;
 import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler; 
+import javax.security.auth.callback.CallbackHandler;
 
 import org.jboss.logging.Logger;
 import org.jboss.security.AnybodyPrincipal;
@@ -99,16 +98,7 @@
    public int authorize(Resource resource) throws AuthorizationException
    {
       validateResource(resource);
-      Subject subject;
-      try
-      {
-         subject = SubjectActions.getActiveSubject();
-      }
-      catch (PrivilegedActionException e)
-      {
-         log.trace("Exception ",e);         
-         throw new AuthorizationException(e.getLocalizedMessage()); 
-      }
+      Subject subject = SubjectActions.getActiveSubject();
       return internalAuthorization(resource,subject, null);
    }
    
@@ -360,15 +350,7 @@
    private RoleGroup getCurrentRoles(Principal principal)
    { 
       //Check that the caller is authenticated to the current thread
-      Subject subject = null;
-      try
-      {
-         subject = SubjectActions.getActiveSubject();
-      }
-      catch (PrivilegedActionException e)
-      {
-         throw new IllegalStateException(e);
-      } 
+      Subject subject = SubjectActions.getActiveSubject();  
       
       //Deal with the security context
       SecurityContext sc = SubjectActions.getSecurityContext(); 

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/SubjectActions.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/SubjectActions.java	2008-06-13 21:22:47 UTC (rev 74552)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/SubjectActions.java	2008-06-13 21:33:18 UTC (rev 74553)
@@ -37,6 +37,7 @@
 import javax.security.jacc.PolicyContext;
 import javax.security.jacc.PolicyContextException;
 
+import org.jboss.logging.Logger;
 import org.jboss.security.SecurityAssociation;
 import org.jboss.security.SecurityConstants;
 import org.jboss.security.SecurityContext;
@@ -51,6 +52,8 @@
  */
 class SubjectActions
 {
+   private static Logger log = Logger.getLogger(SubjectActions.class);
+   
    private static class ToStringSubjectAction implements PrivilegedAction<String>
    {
       Subject subject;
@@ -80,12 +83,23 @@
       }
    }
 
-   private static class GetSubjectAction implements PrivilegedExceptionAction<Subject>
+   private static class GetSubjectAction implements PrivilegedAction<Subject>
    {
-      static PrivilegedExceptionAction<Subject> ACTION = new GetSubjectAction();
-      public Subject run() throws PolicyContextException
+      static PrivilegedAction<Subject> ACTION = new GetSubjectAction();
+      public Subject run()
       {
-         return (Subject) PolicyContext.getContext(SecurityConstants.SUBJECT_CONTEXT_KEY);  
+         Subject subject = null;
+         try
+         {
+            subject = (Subject) PolicyContext.getContext(SecurityConstants.SUBJECT_CONTEXT_KEY);
+         }
+         catch(PolicyContextException pce)
+         {
+            log.trace("Error obtaining subject:", pce);
+            SecurityContext sc = getSecurityContext();
+            subject = sc.getUtil().getSubject();
+         }
+         return subject;
       }
    }
 
@@ -286,7 +300,7 @@
       void pop();
    }
 
-   static Subject getActiveSubject() throws PrivilegedActionException
+   static Subject getActiveSubject()
    {
       Subject subject = (Subject) AccessController.doPrivileged(GetSubjectAction.ACTION);
       return subject;




More information about the jboss-cvs-commits mailing list