JAAS自定义登录模块

问题描述:

我有一个自定义登录模块在jboss耳朵上。耳朵的META-INF有一个jboss-app.xml,它指向一个login-service.xml,它包含一个指向login-config.xml的mbean,它定义了自定义登录模块。JAAS自定义登录模块

耳朵的META-INF中的jboss.xml使用与为login-config.xml中的登录模块定义的安全域相同的安全域。

在那个耳朵里打一个EJB的调用时,我没有看到我的自定义登录模块运行登录和提交方法,就像我以前在其他地方实现过的那样。

我有跟踪log4j设置为org.jboss.security和我看什么都没有在进行EJB调用。即使我没有通过身份验证,EJB调用也会成功。

我无法弄清楚为什么我的登录模块没有被调用或者如何调试JAAS决策过程。有任何想法吗?谢谢。

我发现这个问题,有一定的帮助。

我的jboss.xml位于耳朵的META-INF文件夹中,它应该位于EJB jar的META-INF文件夹中。

显然,耳朵的META-INF文件夹中的jboss文件应该是jboss-app.xml,我想这将是下次记住的线索。

你做了什么至今创造登录模块,现在你需要告诉你的EJB使用它:

import javax.annotation.security.RolesAllowed; 
import javax.ejb.Stateless; 

import org.jboss.ejb3.annotation.SecurityDomain; 


@Stateless 
@SecurityDomain("mySecurityDomain") 
@RolesAllowed({"guestRole", "userRole", "adminRole"}) 
public class SecureBean implements Secure { 
+0

谢谢 - 我怎样才能做到这一点没有注释?我确实在指定安全域的jboss.xml中定义了EJB,但不确定这是否是注释的替代方法。 – rich 2010-06-09 16:18:05