[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