在通过this link实现Spring REST安全性时,我遇到了以下代码:
auth.inMemoryAuthentication()
.withUser("admin")
.password("{noop}password")
.roles("USER");
我查看了教程,但在密码部分找不到{noop}
的含义。
发布于 2019-05-14 03:02:30
这是指定的密码编码器;例如this release blog post
密码存储格式
密码的一般格式为:
{id}encodedPassword
使得id
是用于查找应该使用哪个PasswordEncoder
的标识符,而encodedPassword
是所选PasswordEncoder
的原始编码口令。
noop
是"no operation“的缩写,意思是密码是以纯文本存储的,所以密码就是password
。您可以在您发布的链接下面看到这一点,其中Authorization
标头被设置为Basic YWRtaW46cGFzc3dvcmQ=
,它被解码为admin:password
。
对于任何非演示用法,请注意,根据the class documentation
此PasswordEncoder不安全。而应使用自适应单向函数,如BCryptPasswordEncoder、Pbkdf2PasswordEncoder或SCryptPasswordEncoder。
https://stackoverflow.com/questions/56118384
复制相似问题