Java 在Spring中配置NoOpPasswordEncoder
我在Spring中有这个密码配置Java 在Spring中配置NoOpPasswordEncoder,java,spring,spring-boot,spring-security,Java,Spring,Spring Boot,Spring Security,我在Spring中有这个密码配置 @Bean public PasswordEncoder passwordEncoder() { return NoOpPasswordEncoder.getInstance(); } 但看起来它已被弃用,我不需要加密rest密钥。我需要以纯文本形式存储它们。如何配置此功能?由于此问题,此密码编码器已被弃用-。在弃用之前,它并不是安全的或更可靠的(因为它什么都不做),它只是作为更大的东西的一部分被弃用了 如果您想使用该密码编码器,您可以这样做并忽略弃用
@Bean
public PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
但看起来它已被弃用,我不需要加密rest密钥。我需要以纯文本形式存储它们。如何配置此功能?由于此问题,此
密码编码器已被弃用-。在弃用之前,它并不是安全的或更可靠的(因为它什么都不做),它只是作为更大的东西的一部分被弃用了
如果您想使用该密码编码器
,您可以这样做并忽略弃用,只需知道它完全不起任何作用(可能除了给不熟悉代码库的人一种错误的安全感之外),并且正如文档所说的,它应该只用于测试
如果您真的想避免使用这个类,并且希望以明文形式保存内容,并且出于某种原因仍然将PasswordEncoder
声明为bean(我真的不明白为什么有人希望将这三种东西结合起来),那么您可以实现自己的PasswordEncoder
,这是一个简单的界面。只需将代码复制到MyNoOpPasswordEncoder,完成!:-) 虽然有点晚了,但我发现:
如果要将密码存储为明文,则必须在其前面加上{noop}
。默认PasswordEncoder
即DelegatingPasswordEncoder
应注意匹配它。
例如,如果您的明文密码是abc123ABC
,则必须将其作为{noop}abc123ABC
存储在数据库中
(对Spring Security 5.x及以后版本有效)我删除了它,得到了java.lang.IllegalArgumentException:没有为id“null”映射的PasswordEncoder
d
表示查找的标识符PasswordEncoder
。通常情况下,编码密码的格式为{format}password
。因此,您应该将您的密码设置为{noop}password
我应该使用什么Spring方法来插入密码以获得{noop}密码?