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