[jboss-cvs] JBossAS SVN: r65982 - trunk/security/src/main/org/jboss/security/integration.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Oct 9 15:46:57 EDT 2007
Author: anil.saldhana at jboss.com
Date: 2007-10-09 15:46:57 -0400 (Tue, 09 Oct 2007)
New Revision: 65982
Modified:
trunk/security/src/main/org/jboss/security/integration/JNDIBasedSecurityManagement.java
Log:
specify DeepCopySubject option
Modified: trunk/security/src/main/org/jboss/security/integration/JNDIBasedSecurityManagement.java
===================================================================
--- trunk/security/src/main/org/jboss/security/integration/JNDIBasedSecurityManagement.java 2007-10-09 19:46:15 UTC (rev 65981)
+++ trunk/security/src/main/org/jboss/security/integration/JNDIBasedSecurityManagement.java 2007-10-09 19:46:57 UTC (rev 65982)
@@ -36,6 +36,7 @@
import org.jboss.security.SecurityConstants;
import org.jboss.security.audit.AuditManager;
import org.jboss.security.auth.callback.SecurityAssociationHandler;
+import org.jboss.security.config.SecurityConfiguration;
import org.jboss.security.identitytrust.IdentityTrustManager;
import org.jboss.security.mapping.MappingManager;
import org.jboss.security.plugins.JaasSecurityDomain;
@@ -194,9 +195,17 @@
public SecurityDomainContext createSecurityDomainContext(String domain) throws Exception
{
CachePolicy cachePolicy = (CachePolicy)createObject(this.cachePolicyName);
- cachePolicy.create();
+ if(cachePolicy != null )
+ cachePolicy.create();
AuthenticationManager am = createAuthenticationManager(domain);
+ //Set security cache if the auth manager implementation supports it
setSecurityDomainCache(am, cachePolicy);
+ //Set DeepCopySubject option if supported
+ if(SecurityConfiguration.isDeepCopySubjectMode())
+ {
+ setDeepCopySubjectMode(am);
+ }
+
SecurityDomainContext securityDomainContext = new SecurityDomainContext(am, cachePolicy);
securityDomainContext.setAuthorizationManager(createAuthorizationManager(domain));
@@ -305,4 +314,26 @@
log.trace("Optional setCachePolicy failed" + e2.getLocalizedMessage());
}
}
+
+ /** Use reflection to attempt to set the authentication cache on the
+ * securityMgr argument.
+ * @param securityMgr the security manager
+ * @param cachePolicy the cache policy implementation
+ */
+ private static void setDeepCopySubjectMode(AuthenticationManager securityMgr)
+ {
+ try
+ {
+ Class[] argsType = {Boolean.class};
+ Method m = securityMgr.getClass().getMethod("setDeepCopySubjectOption", argsType);
+ Object[] deepCopyArgs = {Boolean.TRUE};
+ m.invoke(securityMgr, deepCopyArgs);
+ log.trace("setDeepCopySubjectOption, option="+deepCopyArgs[0]);
+ }
+ catch(Exception e2)
+ {
+ if(log.isTraceEnabled())
+ log.trace("Optional setDeepCopySubjectMode failed" + e2.getLocalizedMessage());
+ }
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list