Amy*_*Amy 11 tomcat active-directory java-ee single-sign-on windows-users
我正在做一个需要使用Active Directory进行单点登录的Java EE Web应用程序.
应用程序将不再提示输入用户名和密码.身份验证过程需要检索当前Windows登录用户.一旦我有了用户,我需要查询Active Directory以获取该登录用户的角色.我知道这将排除非Windows用户,但这是一个内部应用程序,所有客户端都在使用Windows.
我必须在2个Java EE Web应用程序中实现SSO.1个应用程序在GlassFish v2.1.1(JDK 1.6)上运行,另一个在Tomcat(JDK 1.5)上运行.
基本上我的主要问题是如何检索当前Windows登录用户.
我已经遇到过JAAS和Kerberos.如果我错了,请纠正我.我的理解是这些是身份验证协议,它们没有检索登录用户的当前窗口的功能.
我已经尝试了以下但我总是得到null或服务器自己的用户名.
System.getProperty("user.name");new com.sun.security.auth.module.NTSystem().getName();request.getUserPrincipal().getName();System.getenv("USERNAME");我对任何建议持开放态度.
SPNEGO是一个开源项目,它提供了一个可提供集成 Windows 身份验证的 servlet 过滤器。
如果您的组织使用基于 java 的 Web/应用程序服务器,并且您更喜欢 Kerberos/SPNEGO 而不是 NTLM 作为身份验证协议,并且您宁愿使用基于 Java Servlet Filter (JSR-53) 的实现,而不是容器特定的身份验证模块 (JSR -196),并且您想要 SSO(无用户名/密码提示),那么您可能会对这个项目感兴趣。
它包含配置Tomcat和Glassfish的说明。
| 归档时间: |
|
| 查看次数: |
25243 次 |
| 最近记录: |