java使用LDAP对特定请求的凭据进行身份验证
我有一个使用JBoss5.2部署的web应用程序。为了让用户使用应用程序,他/她必须使用用户名和密码向LDAP服务器进行身份验证(使用简单身份验证)。这一切都是通过为JBoss设置login-config.xml
并为我们的实现提供一个<login-module>
来完成的
问题出现在这里:登录后,我有一个场景要求用户提供用户名&;执行特定操作时的密码(我还将通过LDAP服务器进行身份验证)。我希望能够重用用于在web应用程序中验证用户的相同机制
我登录应用程序的表单发布到j_security_check
,因此根据这个,我试图向j_security_check
发送请求,但JBOSS返回404。通过仔细阅读,我发现j_security_check
不能被任何任意请求访问,必须响应对安全资源的质询请求
那么,如何验证用户为同一LDAP服务器提供的第二组凭据
编辑:
为了澄清,问题是如何将用户的凭证输入发送到LDAP服务器进行身份验证。从用户处获取输入等都已完成。剩下的就是获取这个输入并将其发送到LDAP服务器并获得响应(这就是我遇到的问题)
如果有帮助的话,那么web应用程序的登录将使用扩展UsernamePasswordLoginModule的自定义类
# 1 楼答案
因此,经过大量的研究,我最终找到了JBoss环境的解决方案(这就是我正在使用的)
捕获用户的凭据后,通过POST/GET将其发送到服务器,服务器可以执行以下操作,以使用您配置的任何身份验证策略(在
login-config.xml
)来验证凭据:为了对此进行扩展,我还能够通过
HttpServletRequest
(传递到我的服务器端处理程序中)检查用户的角色/组:# 2 楼答案
想要为JBoss 6.2+添加另一个答案,其中
WebAuthentication
不再存在。 我使用了LoginContext
的创建来实现相同的结果:以及使用uf
lc.getSubject().getPrincipals()
来验证角色# 3 楼答案
{a1}解释了这一点