Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring3和NTLM身份验证_Java_Spring_Spring Security_Ntlm - Fatal编程技术网

Java Spring3和NTLM身份验证

Java Spring3和NTLM身份验证,java,spring,spring-security,ntlm,Java,Spring,Spring Security,Ntlm,我使用的是Spring3Web应用程序,因为Spring3不支持NTLM身份验证,还有什么其他替代方案可以与SpringSecurity一起使用?这样用户在登录到Active Directory时就可以通过应用程序的身份验证了吗 Kerberos解决方案目前不是一个选项,NTLM是唯一的选项 任何帮助都是值得赞赏的 谢谢,我已经做过一次了。抓住它。它需要在AD级别进行一些小的设置。请在此处或github上自由提问。解决问题的最简单方法如下: 1) 安装Apache Web服务器并配置为使用mod

我使用的是Spring3Web应用程序,因为Spring3不支持NTLM身份验证,还有什么其他替代方案可以与SpringSecurity一起使用?这样用户在登录到Active Directory时就可以通过应用程序的身份验证了吗

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

任何帮助都是值得赞赏的


谢谢,我已经做过一次了。抓住它。它需要在AD级别进行一些小的设置。请在此处或github上自由提问。

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

1) 安装Apache Web服务器并配置为使用modntlm使用NTLM身份验证

(类似地,您可以使用mod_auth_kerb使用Kerberos身份验证)

2) 将mod_jk配置到Selvlet容器(JBoss或Tomcat) 验证成功后,Apache将远程用户头发送到servlet容器。 标头(根据名称)包含已验证用户的用户名 确保配置tomcatAuthentication=“false”以允许Apache允许Apache发送远程用户头

3) 在Spring Security中实现并配置您自己的预验证处理筛选器: 它应该非常类似于请求头身份验证过滤器: 此外,您应该从用户名中省略域名。
在NTLM或Kerberos身份验证之后,用户名将在远程用户头中发送。

Waffle是一种插入式解决方案,可与springsecurity一起使用以实现此目的:

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

NTLM是专有的,不要期望在Java中找到工作解决方案。AD级别的设置要求是什么?我使用的是Weblogic 10.3.6,所以有任何兼容性问题吗?只需创建类型为“computer”的帐户即可)并在AD服务器上执行SetComputerAccountPasswordWindows7.vbs。应与Weblogic 10.3.6配合使用,不会出现任何问题。