2015-02-09 104 views
4

如何在Wildfly中添加自定义验证器?我以前做这在JBoss中4.2:Wildfly自定义验证方法

<JBoss> \ jboss的,如\服务器\生产\部署\ 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的,如\服务器\生产\部署\ jboss的门户 - ha.sar \门户将server.war \ WEB-INF \ web.xml文件,修改:

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

Wildfly做不再有jboss-service.xml。

回答

11

我找到了答案。我们需要在META-INF/services中创建一个Undertow ServletExtension(io.undertow.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> 
... 
+0

您是否有任何实现就绪f或NTLM?我现在正在使用奶蛋烘饼,但创建的原理在注入的'HttpServletRequest'中不可用。这就是我寻找替代品的原因。 – grubi 2015-11-18 16:24:24

+0

嗨,我试图在wildlfy中使用NTLM,但我阻止使用什么样的图书馆来检索NTLM,因为在我们使用华夫饼之前,但是基于阀门和tomcat类,jcifs没用,请问您有NTLM机制的代码吗? – cyril 2016-04-29 09:44:49