grails - 如何从 spring-security 获取明文密码?

标签 grails spring-security spring-ldap

我使用 Grails + spring-security + LDAP 来验证用户。身份验证现在有效,但我需要纯文本密码来验证第二个服务。

我尝试了 SpringSecurityService 属性,但没有一个包含密码。

我必须实现自己的 UserDetailsMapper 还是 LdapUserDetailsMapper 也提供从 Web 表单检索到的纯文本密码的映射?

最佳答案

您可以从 org.springframework.security.core.context.SecurityContextHolder 获取凭据。但是,我真的不认为使用它是个好主意。您将无法使用“记住我”、“运行方式”或“切换用户”功能,因为凭据不会包含当前用户的密码(它们可能为空)。此外,我认为如果使用基本 HTML 身份验证或表单例份验证以外的任何其他方式,您将无法获得明文密码。

无论如何,如果使用表单例份验证,SecurityContextHolder.getContext().getAuthentication().getCredentials() 将为您提供明文密码。

关于grails - 如何从 spring-security 获取明文密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5088319/

相关文章:

grails - CAS登录后如何通过重定向对Grails 3应用进行功能测试?

jquery - 检查对Ajax请求的权限

java - 为什么我的 Spring 应用程序无法识别有人已经登录?

session - 无法使 Spring 3 session 并发控制工作

java - 为 Ldap 连接配置 Spring 安全性

java - OpenLdap 服务器,Spring ldap 用户绑定(bind) (inetOrgPerson) 没有这样的对象

java - LDAP 模板身份验证使用正确的密码返回 false

ajax - Grails Ajax 登录

grails - Grails 中的帮助气球

Spring Security Invalid remember-me token (Series/token) 不匹配。暗示先前的 cookie 盗窃攻击