JAAS自定义登录模块

时间:2010-06-09 13:44:41

标签: java java-ee jboss jaas

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

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

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

我有org.jboss.security的跟踪log4j设置,我在进行EJB调用时看到 nothing 。即使我没有通过身份验证,EJB调用也是成功的。

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

2 个答案:

答案 0 :(得分:3)

到目前为止你所做的是创建登录模块,现在你需要告诉你的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 {

答案 1 :(得分:2)

我在一些帮助下找到了问题。

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

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