作者:yax何 | 来源:互联网 | 2023-10-13 13:18
我在jboss的耳朵上有一个自定义的登录模块.耳朵的META-INF有一个jboss-app.xml,它指向一个login-service.xml,其中包含一个mbean,该mbean指向一个定
我在jboss的耳朵上有一个自定义的登录模块.耳朵的META-INF有一个jboss-app.xml,它指向一个login-service.xml,其中包含一个mbean,该mbean指向一个定义自定义登录模块的login-config.xml.
耳朵的META-INF中的jboss.xml使用与在login-config.xml中为登录模块定义的安全域相同的安全域.
在那只耳朵中调用EJB时??,我看不到我的自定义登录模块运行的login和commit方法,就像我过去在其他地方实现此方法时看到的那样.
我具有org.jboss.security的跟踪log4j设置,但是在进行EJB调用时我什么也没看到.即使未通过身份验证,EJB调用也会成功.
我无法弄清楚为什么未调用我的登录模块或如何调试JAAS决策过程.有任何想法吗?谢谢.
解决方法:
到目前为止,您已经完成了创建登录模块的工作,现在您需要告诉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 {