[jboss-cvs] JBossAS SVN: r75972 - branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/security.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jul 17 16:46:47 EDT 2008


Author: mmoyses
Date: 2008-07-17 16:46:47 -0400 (Thu, 17 Jul 2008)
New Revision: 75972

Modified:
   branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/security/Ejb3AuthenticationInterceptor.java
Log:
JBAS-5777: EJBAccessException now has the GeneralSecurityException as the cause.

Modified: branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/security/Ejb3AuthenticationInterceptor.java
===================================================================
--- branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/security/Ejb3AuthenticationInterceptor.java	2008-07-17 20:18:10 UTC (rev 75971)
+++ branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/security/Ejb3AuthenticationInterceptor.java	2008-07-17 20:46:47 UTC (rev 75972)
@@ -22,21 +22,19 @@
 package org.jboss.ejb3.security;
 
 import java.security.GeneralSecurityException;
-import java.security.Principal; 
+import java.security.Principal;
 
 import javax.ejb.EJBAccessException;
 
-import org.jboss.ejb3.Container;
-import org.jboss.ejb3.EJBContainer;
-import org.jboss.logging.Logger;
-
 import org.jboss.annotation.security.SecurityDomain;
 import org.jboss.aop.joinpoint.MethodInvocation;
-
 import org.jboss.aspects.security.AuthenticationInterceptor;
 import org.jboss.aspects.security.SecurityContext;
+import org.jboss.ejb3.Container;
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.logging.Logger;
 import org.jboss.security.AuthenticationManager;
-import org.jboss.security.RealmMapping; 
+import org.jboss.security.RealmMapping;
 import org.jboss.security.SecurityAssociation;
 import org.jboss.security.SecurityRolesAssociation;
 import org.jboss.security.SimplePrincipal;
@@ -49,42 +47,47 @@
  * @version $Revision$
  */
 public class Ejb3AuthenticationInterceptor extends AuthenticationInterceptor
-{ 
+{
    private static final Logger log = Logger.getLogger(Ejb3AuthenticationInterceptor.class);
 
    private EJBContainer container;
+
    protected RealmMapping realmMapping;
 
    public Ejb3AuthenticationInterceptor(AuthenticationManager manager, Container container)
    {
       super(manager);
-      this.container = (EJBContainer)container;
-      this.realmMapping = (RealmMapping)manager;
+      this.container = (EJBContainer) container;
+      this.realmMapping = (RealmMapping) manager;
    }
 
    protected void handleGeneralSecurityException(GeneralSecurityException gse)
    {
       log.debug("Authentication failure", gse);
-      throw new EJBAccessException("Authentication failure");
+      EJBAccessException eae = new EJBAccessException("Authentication failure");
+      eae.initCause(gse);
+      throw eae;
    }
 
    public Object invoke(org.jboss.aop.joinpoint.Invocation invocation) throws Throwable
    {
-      MethodInvocation mi = (MethodInvocation)invocation;
-      SecurityDomain domain = (SecurityDomain)container.resolveAnnotation(SecurityDomain.class);
-      
-      if (domain != null && domain.unauthenticatedPrincipal() != null && domain.unauthenticatedPrincipal().length() != 0)
+      MethodInvocation mi = (MethodInvocation) invocation;
+      SecurityDomain domain = (SecurityDomain) container.resolveAnnotation(SecurityDomain.class);
+
+      if (domain != null && domain.unauthenticatedPrincipal() != null
+            && domain.unauthenticatedPrincipal().length() != 0)
       {
-         Principal principal = (Principal)invocation.getMetaData("security", "principal");
+         Principal principal = (Principal) invocation.getMetaData("security", "principal");
          if (principal == null)
             principal = SecurityAssociation.getPrincipal();
-           
+
          if (principal == null)
          {
-            invocation.getMetaData().addMetaData("security", "principal", new SimplePrincipal(domain.unauthenticatedPrincipal()));
-            
+            invocation.getMetaData().addMetaData("security", "principal",
+                  new SimplePrincipal(domain.unauthenticatedPrincipal()));
+
             Object oldDomain = SecurityContext.getCurrentDomain().get();
-            
+
             try
             {
                SecurityContext.getCurrentDomain().set(authenticationManager);
@@ -97,21 +100,22 @@
          }
       }
       try
-      {  
+      {
          //Set a map of principal-roles that may be configured at deployment level
-         if(container.getAssemblyDescriptor() != null)
+         if (container.getAssemblyDescriptor() != null)
          {
             SecurityRolesAssociation.setSecurityRoles(container.getAssemblyDescriptor().getPrincipalVersusRolesMap());
          }
-         Object ignoreFlag = invocation.getMetaData(RoleBasedAuthorizationInterceptor.AUTHORIZATION, RoleBasedAuthorizationInterceptor.IGNORE_AUTHORIZATION);
+         Object ignoreFlag = invocation.getMetaData(RoleBasedAuthorizationInterceptor.AUTHORIZATION,
+               RoleBasedAuthorizationInterceptor.IGNORE_AUTHORIZATION);
          if (ignoreFlag != null)
             return invocation.invokeNext();
          else
             return super.invoke(invocation);
       }
       finally
-      { 
+      {
          SecurityRolesAssociation.setSecurityRoles(null);
       }
-   } 
+   }
 }




More information about the jboss-cvs-commits mailing list