Wildfly自定义身份验证方法



如何在Wildfly中添加自定义验证器?我曾经在JBoss 4.2:中这样做

<JBoss>\jboss as\server\production\deploy\jboss web.deployer\META-INF\jboss-service.xml中,添加以下内容:

 <java:property>
      <java:key>MY-CUSTOM-AUTH</java:key>
      <java:value>com.test.MyCustomAuthenticator</java:value>
 </java:property>

<JBoss>\jboss as\server\production\deploy\jboss portal ha.sar\portal server.war\WEB-INF\WEB.xml中,修改:

...
 <login-config>
      <auth-method>MY-CUSTOM-AUTH</auth-method>
...

Wildfly不再有jboss-service.xml。

我找到了答案。我们需要在META-INF/服务中创建一个Undertow servlet Extension(io.bundertow.servlet.ServletExtension)来注册身份验证机制。我的扩展类如下:
public class NtlmServletExtension implements ServletExtension {
    @Override
    public void handleDeployment(DeploymentInfo deploymentInfo, ServletContext servletContext) {
        deploymentInfo.addAuthenticationMechanism("NTLM", new NtlmAuthenticationMechanism.Factory());
    }
}

查看此项以了解更多详细信息:http://undertow.io/documentation/servlet/security.html

以下是一个示例:https://github.com/dstraub/spnego-wildfly

现在,您可以在web.xml中引用这个:

...
 <login-config>
      <auth-method>NTLM</auth-method>
...

在WildFly中,您必须为此使用一个安全领域:

  • https://docs.jboss.org/author/display/WFLY8/Security+可供参考的领域
  • http://www.radcortez.com/custom-principal-and-loginmodule-for-wildfly/作为一个例子

最新更新