grails - 更新 spring security 用户的密码字段?

标签 grails spring-security

我在更新 User 类的密码字段时遇到问题,我在 grails 中使用 SpringSecurity 插件,看到它应该像这样完成,但不起作用...

user.password = springSecurityService.encodePassword(
                params.password, userInstance.username)

也尝试过

user.password = springSecurityService.encodePassword(
                params.password)

有什么想法吗?

最佳答案

如果您使用的是较新版本的插件(1.2.7 或更高版本),那么您不想像您正在做的那样对密码进行显式编码,因为 User 类中生成的代码会为您完成此操作。仅当您的域类没有调用 springSecurityService.encodePassword 时,否则您将进行双重编码并且无法登录。

如果您自己对密码进行编码,则您显示的第一个版本将使用用户名作为盐,而第二个版本则没有盐。对密码加盐是个好主意,但不是必需的 - 您可以在文档第 12.2 节 - http://grails-plugins.github.com/grails-spring-security-core/docs/manual/ 中阅读相关内容。

关于grails - 更新 spring security 用户的密码字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065308/

相关文章:

java - 启动服务器时出现异常 : java. lang.NoSuchMethodException : org. springframework.security.authentication.ProviderManager.<init>()

java - 使用 Spring Security BCryptPasswordEncoder 散列密码时凭据错误

design-patterns - 从网络界面运行长时间的实验

grails - IntelliJ IDEA Grails 3.0 错误

jquery - Grails注入(inject)g :select and jQuery handler

jsp - pageContext.request.userPrincipal 是否存储在 session 中?我也能得到密码吗?

javascript - Springs CSRF 保护*仅* HTML 登录页面

html - 在转义中仅转义特定标签

javascript - 在javascript文件中生成url

spring-security - Spring 启动测试: Spring Security with custom auth provider not visible on springsecurityfilterchain