[jboss-cvs] JBossAS SVN: r57839 - branches/JEE5_TCK/ejb3/src/main/org/jboss/ejb3/security
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Oct 26 03:58:04 EDT 2006
Author: thomas.diesler at jboss.com
Date: 2006-10-26 03:58:01 -0400 (Thu, 26 Oct 2006)
New Revision: 57839
Modified:
branches/JEE5_TCK/ejb3/src/main/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java
Log:
Prevent NPE on missing @SecurityDomain
Modified: branches/JEE5_TCK/ejb3/src/main/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java
===================================================================
--- branches/JEE5_TCK/ejb3/src/main/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java 2006-10-25 23:44:13 UTC (rev 57838)
+++ branches/JEE5_TCK/ejb3/src/main/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java 2006-10-26 07:58:01 UTC (rev 57839)
@@ -21,25 +21,26 @@
*/
package org.jboss.ejb3.security;
+import java.util.HashSet;
+
+import javax.annotation.security.RunAs;
import javax.naming.InitialContext;
import javax.naming.NamingException;
-import javax.annotation.security.RunAs;
+import org.jboss.annotation.security.RunAsPrincipal;
import org.jboss.aop.Advisor;
import org.jboss.aop.InstanceAdvisor;
import org.jboss.aop.advice.AspectFactory;
-import org.jboss.aop.joinpoint.Joinpoint;
+import org.jboss.aop.advice.Interceptor;
+import org.jboss.aop.joinpoint.Joinpoint;
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.metamodel.AssemblyDescriptor;
+import org.jboss.ejb3.tx.NullInterceptor;
import org.jboss.logging.Logger;
import org.jboss.security.AuthenticationManager;
import org.jboss.security.RealmMapping;
-import org.jboss.security.RunAsIdentity;
-import org.jboss.ejb3.EJBContainer;
-import org.jboss.ejb3.metamodel.AssemblyDescriptor;
-import org.jboss.ejb3.tx.NullInterceptor;
-import org.jboss.annotation.security.RunAsPrincipal;
+import org.jboss.security.RunAsIdentity;
-import java.util.HashSet;
-
public class RunAsSecurityInterceptorFactory implements AspectFactory
{
private static final Logger log = Logger.getLogger(RunAsSecurityInterceptorFactory.class);
@@ -78,27 +79,37 @@
public Object createPerClass(Advisor advisor)
{
- Object domain = null;
EJBContainer container = (EJBContainer)advisor;
RunAsIdentity runAsIdentity = getRunAsIdentity(container);
/*if (runAsIdentity == null)
{
return new NullInterceptor();
}*/
+
+ Object domain = null;
try
{
InitialContext ctx = container.getInitialContext();
- org.jboss.annotation.security.SecurityDomain securityAnnotation = (org.jboss.annotation.security.SecurityDomain) advisor.resolveAnnotation(org.jboss.annotation.security.SecurityDomain.class);
- domain = SecurityDomainManager.getSecurityManager(securityAnnotation.value(), ctx);
+ org.jboss.annotation.security.SecurityDomain anSecurityDomain = (org.jboss.annotation.security.SecurityDomain) advisor.resolveAnnotation(org.jboss.annotation.security.SecurityDomain.class);
+ if (anSecurityDomain != null)
+ {
+ String domainName = anSecurityDomain.value();
+ domain = SecurityDomainManager.getSecurityManager(domainName, ctx);
+ }
}
catch (NamingException e)
{
throw new RuntimeException(e);
}
- AuthenticationManager manager = (AuthenticationManager) domain;
- RealmMapping mapping = (RealmMapping) domain;
- if (manager == null) throw new RuntimeException("Unable to find Security Domain");
- return new RunAsSecurityInterceptor(manager, mapping, getRunAsIdentity(container));
+
+ Interceptor interceptor = new NullInterceptor();
+ if (domain != null)
+ {
+ AuthenticationManager manager = (AuthenticationManager) domain;
+ RealmMapping mapping = (RealmMapping) domain;
+ interceptor = new RunAsSecurityInterceptor(manager, mapping, getRunAsIdentity(container));
+ }
+ return interceptor;
}
public Object createPerInstance(Advisor advisor, InstanceAdvisor instanceAdvisor)
More information about the jboss-cvs-commits
mailing list