WildFly 10.1 中来自 JBoss EAP 6 的 NegotiationAuthenticator class 的替代方案?

Alternative for NegotiationAuthenticator class from JBoss EAP 6 in WildFly 10.1?

我正在努力将 JBoss EAP 6 升级到 WildFly 10.1。在我们的应用程序中,我们在 jboss-web.xml.

中使用 SPNEGO 身份验证机制

我们在 JBoss 中使用 org.jboss.security.negotiation.NegotiationAuthenticator,但在 WildFly 中这个 class 被删除了。我没有找到任何替代方案 class 或实现类似身份验证机制的方法。

有什么替代方案?

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <security-domain>dsds-security-domain</security-domain>
    <valve>
        <class-name>org.jboss.security.negotiation.NegotiationAuthenticator</class-name>
    </valve>
</jboss-web> 

您应该从 jboss-web.xml 中完全删除 <valve> 元素。您没有在 WildFly 10.x 中指定替代方案。 SPNEGO 开箱即用。

The authenticator is registered by Undertow integration 参与 WildFly。

它甚至可以在 WildFly 10.1 中运行,而无需在 jboss-web.xml 中进行更改。如果您在文件中保留 NegotiationAuthenticator 条目,您只会在服务器日志中看到一条警告消息。

您唯一需要关心的重要变化是 web.xml 部署描述符的 <login-config> 部分。现在 SPNEGO 名称是 <auth-method> 中的强制值:

<login-config>
    <auth-method>SPNEGO</auth-method>
</login-config>