Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Spring中配置NoOpPasswordEncoder_Java_Spring_Spring Boot_Spring Security - Fatal编程技术网

Java 在Spring中配置NoOpPasswordEncoder

Java 在Spring中配置NoOpPasswordEncoder,java,spring,spring-boot,spring-security,Java,Spring,Spring Boot,Spring Security,我在Spring中有这个密码配置 @Bean public PasswordEncoder passwordEncoder() { return NoOpPasswordEncoder.getInstance(); } 但看起来它已被弃用,我不需要加密rest密钥。我需要以纯文本形式存储它们。如何配置此功能?由于此问题,此密码编码器已被弃用-。在弃用之前,它并不是安全的或更可靠的(因为它什么都不做),它只是作为更大的东西的一部分被弃用了 如果您想使用该密码编码器,您可以这样做并忽略弃用

我在Spring中有这个密码配置

@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}密码?