Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAAS自定义登录模块_Java_Jakarta Ee_Jboss_Jaas - Fatal编程技术网

Java JAAS自定义登录模块

Java JAAS自定义登录模块,java,jakarta-ee,jboss,jaas,Java,Jakarta Ee,Jboss,Jaas,我在jboss的ear中有一个自定义登录模块。ear的META-INF有一个jboss-app.xml,指向login-service.xml,其中包含一个mbean,指向定义自定义登录模块的login-config.xml ear的META-INF中的jboss.xml使用的安全域与login-config.xml中为登录模块定义的安全域相同 在该ear中调用EJB时,我没有看到我的自定义登录模块运行login和commit方法,就像我过去在其他地方实现的那样 我已经为org.jboss.se

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

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

在该ear中调用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 {

在一些帮助下,我发现了问题

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


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

谢谢-没有注释我怎么做?我确实在指定安全域的同一jboss.xml中定义了EJB,但不确定这是否是注释的替代方案。