进行内存身份验证时括号的含义

时间:2019-05-13 18:59:04

标签: java rest spring-boot spring-security

在通过this link获得Spring REST安全性的同时,我遇到了以下代码:

auth.inMemoryAuthentication()
    .withUser("admin")
    .password("{noop}password")
    .roles("USER");

我检查了本教程,但在密码部分找不到{noop}的含义。

1 个答案:

答案 0 :(得分:1)

这是指定的密码编码器;每个this release blog post

  

密码存储格式

     

密码的一般格式为:

{id}encodedPassword
     

id是用于查找哪个标识符的标识符   应该使用PasswordEncoder,而encodedPassword是原始的   所选PasswordEncoder的编码密码。

noop是“无操作”的缩写,表示密码以纯文本格式存储,因此密码仅为password。您可以在发布的链接中进一步使用该链接,其中Authorization标头设置为Basic YWRtaW46cGFzc3dvcmQ=,然后将其解码为admin:password


对于任何非演示用途,请注意the class documentation

  

此PasswordEncoder不安全。而是使用自适应的一种方法   像BCryptPasswordEncoder,Pbkdf2PasswordEncoder或   SCryptPasswordEncoder。