[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