[jboss-cvs] jbosssx/src/main/org/jboss/security/plugins ...

Anil Saldhana anil.saldhana at jboss.com
Wed Jul 19 15:26:57 EDT 2006


  User: asaldhana
  Date: 06/07/19 15:26:57

  Modified:    src/main/org/jboss/security/plugins  
                        AuthorizationManagerService.java
                        JBossAuthorizationManager.java
  Log:
  JBAS-2624: Inject a callbackhandler
  
  Revision  Changes    Path
  1.6       +22 -5     jbosssx/src/main/org/jboss/security/plugins/AuthorizationManagerService.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: AuthorizationManagerService.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosssx/src/main/org/jboss/security/plugins/AuthorizationManagerService.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- AuthorizationManagerService.java	11 Jul 2006 19:38:36 -0000	1.5
  +++ AuthorizationManagerService.java	19 Jul 2006 19:26:57 -0000	1.6
  @@ -23,22 +23,23 @@
   
   import java.lang.reflect.Constructor;
   import java.lang.reflect.Method;
  -import java.security.Permission;
   import java.security.Principal;
   import java.util.Hashtable;
   import java.util.Set; 
    
   import javax.management.ObjectName;
  +import javax.security.auth.callback.CallbackHandler;
   
   import org.jboss.logging.Logger;
   import org.jboss.security.AuthorizationManager;
   import org.jboss.security.SecurityConstants;
  +import org.jboss.security.auth.callback.SecurityAssociationHandler;
   import org.jboss.security.authorization.Resource;
   import org.jboss.system.ServiceMBeanSupport;
   import org.jboss.util.CachePolicy;
   import org.jboss.util.TimedCachePolicy;
   
  -//$Id: AuthorizationManagerService.java,v 1.5 2006/07/11 19:38:36 asaldhana Exp $
  +//$Id: AuthorizationManagerService.java,v 1.6 2006/07/19 19:26:57 asaldhana Exp $
   
   /**
    *  Service that provides Authorization capabilities.
  @@ -47,7 +48,7 @@
    *  this can be changed via the authorizationManagerClassName property.
    *  @author <a href="mailto:Anil.Saldhana at jboss.org">Anil Saldhana</a>
    *  @since  Jan 3, 2006 
  - *  @version $Revision: 1.5 $
  + *  @version $Revision: 1.6 $
    */
   public class AuthorizationManagerService 
   extends ServiceMBeanSupport
  @@ -63,6 +64,10 @@
      private static int defaultCacheTimeout = 30*60;
      private static int defaultCacheResolution = 60;
      
  +   /** The JAAS CallbackHandler interface implementation to use */
  +   private static String callbackHandlerClassName = "org.jboss.security.auth.callback.SecurityAssociationHandler";
  +   private static Class callbackHandlerClass = SecurityAssociationHandler.class;
  +
      private static ObjectName securityConfigService = null;
      
      public ObjectName getSecurityConfigService()
  @@ -83,6 +88,17 @@
            throw new ClassCastException(authorizationMgrClass+" does not implement "+AuthorizationManager.class);
      }
      
  +   /** Set the default CallbackHandler implementation class name
  +    * @see javax.security.auth.callback.CallbackHandler
  +    */
  +   public void setCallbackHandlerClassName(String className)
  +      throws ClassNotFoundException
  +   {
  +      callbackHandlerClassName = className;
  +      ClassLoader loader = Thread.currentThread().getContextClassLoader();
  +      callbackHandlerClass = loader.loadClass(callbackHandlerClassName);
  +   }
  +   
      /**
       * @see AuthorizationManagerServiceMBean#setSecurityConfigService(ObjectName)
       */
  @@ -177,7 +193,8 @@
            // Create instance of securityMgrClass
            Class[] parameterTypes = {String.class};
            Constructor ctor = authorizationMgrClass.getConstructor(parameterTypes); 
  -         Object[] args = {securityDomain};
  +         CallbackHandler handler = (CallbackHandler) callbackHandlerClass.newInstance();
  +         Object[] args = {securityDomain, handler}; 
            securityMgr = (AuthorizationManager) ctor.newInstance(args); 
            log.debug("Created AuthorizationManager="+securityMgr); 
            TimedCachePolicy cachePolicy = new TimedCachePolicy(defaultCacheTimeout,
  
  
  
  1.6       +9 -6      jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JBossAuthorizationManager.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- JBossAuthorizationManager.java	19 Jul 2006 18:25:52 -0000	1.5
  +++ JBossAuthorizationManager.java	19 Jul 2006 19:26:57 -0000	1.6
  @@ -23,7 +23,6 @@
    
   import java.io.InputStream;
   import java.net.URL;
  -import java.security.Permission;
   import java.security.Principal;
   import java.security.acl.Group;
   import java.util.Enumeration;
  @@ -35,6 +34,7 @@
   
   import javax.management.ObjectName;
   import javax.security.auth.Subject;
  +import javax.security.auth.callback.CallbackHandler;
   import javax.security.jacc.PolicyContext;
   import javax.security.jacc.PolicyContextException;
   
  @@ -54,13 +54,13 @@
   //Sun's OSS XACML implementation
   import com.sun.xacml.Policy;
   
  -//$Id: JBossAuthorizationManager.java,v 1.5 2006/07/19 18:25:52 asaldhana Exp $
  +//$Id: JBossAuthorizationManager.java,v 1.6 2006/07/19 19:26:57 asaldhana Exp $
   
   /**
    *  Authorization Manager implementation
    *  @author <a href="mailto:Anil.Saldhana at jboss.org">Anil Saldhana</a>
    *  @since  Jan 3, 2006 
  - *  @version $Revision: 1.5 $
  + *  @version $Revision: 1.6 $
    */
   public class JBossAuthorizationManager 
   implements AuthorizationManager,PolicyRegistration
  @@ -191,9 +191,12 @@
      
      protected boolean trace = log.isTraceEnabled();
      
  -   public JBossAuthorizationManager(String securityDomainName)
  +   private CallbackHandler callbackHandler = null;
  +   
  +   public JBossAuthorizationManager(String securityDomainName, CallbackHandler cbh)
      {
         this.securityDomain = securityDomainName;
  +      this.callbackHandler = cbh;
      }
      
      /**
  @@ -212,7 +215,7 @@
            log.error("Error obtaining AuthenticatedSubject:",e);
         }
         AuthorizationContext ac = new AuthorizationContext(this.securityDomain,subject,
  -            null);
  +            this.callbackHandler );
         ac.setSecurityConfigService(this.securityConfigService);
         return ac.authorize(resource);
      }  
  
  
  



More information about the jboss-cvs-commits mailing list