FileDocCategorySizeDatePackage
JaccAuthorizationInterceptorFactory.javaAPI DocJBoss 4.2.13890Fri Jul 13 20:53:52 BST 2007org.jboss.ejb3.security

JaccAuthorizationInterceptorFactory

public class JaccAuthorizationInterceptorFactory extends Object implements org.jboss.aop.advice.AspectFactory
author
Kabir Khan
author
Anil.Saldhana@jboss.org
version
$Revision$

Fields Summary
Constructors Summary
Methods Summary
public java.lang.ObjectcreatePerClass(org.jboss.aop.Advisor advisor)

      try
      {
         String contextID = (String) advisor.getDefaultMetaData().getMetaData("JACC", "ctx");
         
         //TODO: Get codesource
         
         CodeSource ejbCS = advisor.getClazz().getProtectionDomain().getCodeSource();
         
         String ejbName = ((EJBContainer)advisor).getEjbName(); 
         JaccAuthorizationInterceptor jai = new JaccAuthorizationInterceptor(ejbName, ejbCS);
         jai.setRealmMapping(getSecurityManager(advisor)); 
         return jai;
      }
      catch (Exception e)
      {
         throw new RuntimeException(e);
      }
   
public java.lang.ObjectcreatePerInstance(org.jboss.aop.Advisor advisor, org.jboss.aop.InstanceAdvisor instanceAdvisor)

      throw new RuntimeException("PER_VM not supported for this interceptor factory, only PER_CLASS");
   
public java.lang.ObjectcreatePerJoinpoint(org.jboss.aop.Advisor advisor, org.jboss.aop.joinpoint.Joinpoint jp)

      throw new RuntimeException("PER_VM not supported for this interceptor factory, only PER_CLASS");
   
public java.lang.ObjectcreatePerJoinpoint(org.jboss.aop.Advisor advisor, org.jboss.aop.InstanceAdvisor instanceAdvisor, org.jboss.aop.joinpoint.Joinpoint jp)

      throw new RuntimeException("PER_VM not supported for this interceptor factory, only PER_CLASS");
   
public java.lang.ObjectcreatePerVM()

      throw new RuntimeException("PER_VM not supported for this interceptor factory, only PER_CLASS");
   
public java.lang.StringgetName()

      return getClass().getName();
   
public org.jboss.security.RealmMappinggetSecurityManager(org.jboss.aop.Advisor advisor)

      Object domain = null;
      Container container = (Container)advisor;
      try
      {
         InitialContext ctx = container.getInitialContext();
         SecurityDomain securityAnnotation = (SecurityDomain) advisor.resolveAnnotation(SecurityDomain.class);
         if (securityAnnotation != null)
         {
            domain = SecurityDomainManager.getSecurityManager(securityAnnotation.value(),ctx);
         }
      }
      catch (NamingException e)
      {
         throw new RuntimeException(e);
      }
      return (RealmMapping) domain;