Jakarta ee 自定义登录模块未执行?

Jakarta ee 自定义登录模块未执行?,jakarta-ee,jboss,jaas,wildfly,Jakarta Ee,Jboss,Jaas,Wildfly,我尝试编写自己的自定义登录模块,其简化如下: package my.package; public class MyUsernamePasswordLoginModule extends UsernamePasswordLoginModule { @Override protected Group[] getRoleSets() throws LoginException { return new Group[] { }; } @Overri

我尝试编写自己的自定义登录模块,其简化如下:

package my.package;

public class MyUsernamePasswordLoginModule extends UsernamePasswordLoginModule {

    @Override
    protected Group[] getRoleSets() throws LoginException {
        return new Group[] { };
    }

    @Override
    protected boolean validatePassword(String inputPassword, String expectedPassword) {
        return true; 
    }

    @Override
    protected String getUsersPassword() throws LoginException {
        return "";
    }
}
我认为实际执行对我的问题并不重要。该类包含在我部署的EJB中。接下来,我在我的Wildflys
standalone.xml中设置模块。我刚才补充说

<security-domain name="my-security" cache-type="default">
    <authentication>
        <login-module code="my.package.MyUsernamePasswordLoginModule" flag="required" />
    </authentication>
</security-domain>
我现在希望我的请求通过授权,然后执行我的登录模块(虽然在授权之前,身份验证更有意义),但现在它只接受所有请求。因此,我似乎在某个地方把这个概念搞错了,我似乎找不到一些文档来为我澄清这一点。有人能告诉我如何正确配置吗

编辑


经过一些调试后,我发现执行了
org.jboss.as.security.service.SimpleSecurityManager#authenticate(最终字符串runAs、最终字符串runAsPrincipal、最终设置extralroles)
。它在授权之前进行身份验证,这是有道理的。它首先获取安全上下文,并显示安全域实际上是“我的安全”
。但随后它执行自己的身份验证,该身份验证检测到丢失的主体,并设置具有有效身份验证(WAT?)的未经身份验证的标识。因此,身份验证成功并执行授权。我仍然不知道我的登录模块在该流程中的位置以及如何正确配置它。现在,这慢慢地让我发疯了…

事实证明,
@WebContext
注释B对于启用web服务的身份验证是必需的:

@WebContext(contextRoot = "/myservice", urlPattern = "/*", authMethod = "BASIC", secureWSDLAccess = false)
这在所有的教程中我都不清楚。启用HTTP身份验证而不是jaas身份验证似乎是可选的。也许还有一种方法没有它,但它现在按预期工作

@WebContext(contextRoot = "/myservice", urlPattern = "/*", authMethod = "BASIC", secureWSDLAccess = false)