我使用Grails + spring-security + LDAP来验证用户身份。验证现在可以正常工作,但我需要使用纯文本密码来验证第二个服务。
我尝试了SpringSecurityService属性,但没有包含密码。
我是否必须实现自己的UserDetailsMapper,或者LdapUserDetailsMapper是否也提供从Web表单中检索的纯文本密码的映射?
答案 0 :(得分:7)
您可以从org.springframework.security.core.context.SecurityContextHolder
获取凭据。但是,我真的不认为使用它是个好主意。您将无法使用'remember-me'或'run-as'或'switch-user'功能,因为凭据不包含当前用户的密码(它们可能为空)。此外,如果使用除基本HTML身份验证或表单身份验证之外的任何其他内容,我认为您不会获得明文密码。
无论如何,如果使用表单身份验证,SecurityContextHolder.getContext().getAuthentication().getCredentials()
将为您提供明文密码。