Grails 和 Spring Security:与加密模块 PasswordEncoder 一起使用时,Salt 值必须为 Null

2023-12-09

我几乎完成了 Grails 2.2.1 到 2.3.4 以及 Spring Security Plugin 1.2.7.3 到 2.0 RC2 的升级。我正在运行该应用程序,但是当我尝试登录时,我得到:

java.lang.IllegalArgumentException: Salt value must be null when used with crypto module PasswordEncoder

我一直无法弄清楚这一点,也没有找到任何与 grails 或 spring security 插件相关的错误的有用提示...

我使用自定义 UserDetailsS​​ervice 设置了盐,如本博客文章中所述:http://grailsplayground.blogspot.com/2011/10/setting-up-grails-web-application-using.html

我不知道我是否需要以不同的方式做盐(如果新插件有更好的方法来做到这一点),或者我是否只需要更改一些小东西(就像我必须通过更改 grails.txt 的升级过程所做的那样)。 plugins.springsecurity 到 grails.plugin.springsecurity)

log4j 输出(尝试进行身份验证):

    web.FilterChainProxy  - /j_spring_security_check at position 3 of 8 in additional filter chain; firing Filter: 'RequestHolderAuthenticationFilter'authentication.ProviderManager  - Authentication attempt using org.springframework.security.authentication.dao.DaoAuthenticationProvider
    dao.DaoAuthenticationProvider  - Authentication failed: password does not match stored value
    rememberme.TokenBasedRememberMeServices  - Interactive login attempt was unsuccessful.
    rememberme.TokenBasedRememberMeServices  - Cancelling cookie

2.0 中的默认算法是 bcrypt,它不支持提供的盐,因为它在内部使用自己的盐。因此,取消配置任何与盐相关的设置(例如dao.reflectionSaltSourceProperty财产或习俗saltSourcebean)并使用默认值,或使用password.algorithm属性(例如使用 SHA-256)并配置盐设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grails 和 Spring Security:与加密模块 PasswordEncoder 一起使用时,Salt 值必须为 Null 的相关文章

随机推荐