Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 将用户名传递给Spring Security_Java_Spring_Spring Security_Ntlm - Fatal编程技术网

Java 将用户名传递给Spring Security

Java 将用户名传递给Spring Security,java,spring,spring-security,ntlm,Java,Spring,Spring Security,Ntlm,我们有一个返回登录用户名(Windows NTLM)的应用程序,我们通常会传递给所有其他应用程序以检查身份验证部分 我想知道是否可以从返回用户名的应用程序中传递用户名 并传递给我们使用Spring3开发的新web应用程序?这样我们就可以利用Spring的安全特性 如果可能的话,我如何使用这个 由于我们已经有了一个返回Windows用户的应用程序,管理层不鼓励使用Kerberos和其他SSO方法 任何帮助或见解都是非常有益的 谢谢解决问题的最简单方法如下: 1) 安装Apache Web服务器并配

我们有一个返回登录用户名(Windows NTLM)的应用程序,我们通常会传递给所有其他应用程序以检查身份验证部分

我想知道是否可以从返回用户名的应用程序中传递用户名 并传递给我们使用Spring3开发的新web应用程序?这样我们就可以利用Spring的安全特性

如果可能的话,我如何使用这个

由于我们已经有了一个返回Windows用户的应用程序,管理层不鼓励使用Kerberos和其他SSO方法

任何帮助或见解都是非常有益的


谢谢

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

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身份验证后发送到远程用户头中。

您可以将用户名与应用程序URL绑定,如“localhost:port/somename/j_spring_check?j_username=your username”。

spring web应用程序或spring单机应用程序?SPNEGO是典型的方式,但这基本上是一个Kerberos解决方案,听起来它不会飞了。我想我还没有听说过其他方法。如果他们允许你使用kerberos,你可以将AD设置为kerberosKDC并执行类似操作:@DavidA遗憾的是kerberos和SPNEGO现在不在考虑之列。你看到下面的答案了吗?这有帮助吗?Tarun您的意思是说我们应该以以下方式将参数传递给Spring<代码>服务器:7001/getusername/sso/j_-spring\u-check?j_-username=userid