[jboss-dev-forums] [Security Development] New message: "EJB3 security - Skip authorization for @PermiAll?"
jaikiran pai
do-not-reply at jboss.com
Fri Mar 12 06:19:46 EST 2010
JBoss development,
A new message was posted in the thread "EJB3 security - Skip authorization for @PermiAll?":
http://community.jboss.org/message/531585#531585
Author : jaikiran pai
Profile : http://community.jboss.org/people/jaikiran
Message:
--------------------------------------------------------------
I was looking at a thread in the EJB3 forum which was talking about poor performance of a bean method invocation when the bean is marked with a @SecurityDomain, as compared to a similar bean without any @SecurityDomain. The bean is like this:
@Stateless
@Local(Ping.class)
@SecurityDomain(unauthenticatedPrincipal = "anonymous", value="other")
@PermitAll
@LocalBinding (jndiBinding=BeanWithSecurityDomain.JNDI_NAME)
public class BeanWithSecurityDomain implements Ping
{
public static final String JNDI_NAME = "SecurityDomainBean";
/**
* @see org.jboss.ejb3.test.perf.Ping#ping()
*/
public String ping()
{
return "pong1";
}
}
Notice the use of @PermitAll. In the EJB3 security related interceptor org.jboss.ejb3.security.RoleBasedAuthorizationInterceptorv2 i notice that even if the class/method is marked for @PermitAll, the code leads to a authorization call:
boolean isAuthorized = helper.authorize(ejbName,
mi.getMethod(),
sc.getUtil().getUserPrincipal(),
iface,
ejbCS,
sc.getUtil().getSubject(),
callerRunAs,
contextID,
new SimpleRoleGroup(methodRoles));
The authorization call is expensive.
My understanding of @PermitAll was that we would skip this authorization altogether. Is there any reason why we have to authorize even when the bean is marked for @PermitAll?
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/531585#531585
More information about the jboss-dev-forums
mailing list