Spring 3和NTLM身份validation

我使用的是Spring 3 Web应用程序,因为Spring 3不支持NTLM身份validation,还有哪些其他替代方法可以与Spring安全性一起使用? 以便用户在登录Active Directory时对应用程序进行身份validation?

Kerberos解决方案目前不是一个选项,NTLM是唯一的选择。

任何帮助都非常值得赞赏。

谢谢

我做过一次。 抓住这里 。 它需要在AD级别进行一些小的设置。 您可以在这里或在github上提问。

解决问题的最简单方法如下:

1)安装Apache Web Server并配置为使用modntlm使用NTLM身份validation

http://modntlm.sourceforge.net/ (类似的你可以使用mod_auth_kerb使用http://modauthkerb.sourceforge.net/进行 Kerberos身份validation)

2)将mod_jk配置到Selvlet容器(JBoss或Tomcat) http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html成功validation后,Apache将REMOTE_USER标头发送到servlet容器。 标头(根据名称)包含经过身份validation的用户的用户名确保配置tomcatAuthentication =“false”以允许Apache允许apache发送REMOTE_USER标头

3)在Spring Security中实现和配置你自己的PreAuthenticatedProcessingFilter: http ://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#d0e6167它应该非常类似于请求标头身份validationfilter: http : //static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#d0e6295此外,您应该从用户名中省略域名。 在NTLM或Kerberos身份validation之后,用户名将在REMOTE_USER标头中发送。

Waffle是可以与springsecurity一起使用的解决方案,以实现这一目标: https : //github.com/dblock/waffle

我自己也用过它,例如hybris。 他们有一些例子。 谨防1.5版本使用jna3.5,这可能会导致高负载问题还要注意,如果我们的应用程序需要授权,你可能需要扩展negotiatesecurityfilter(我必须这样做,可能会在1.6中修复)。