spring security5之前的版本中,如果想让密码不被加密,可以使用NoOpPasswordEncoder类。但是spring security5之后的版本中NoOpPasswordEncoder类被废弃了,必须对密码加密,也就是必须配置PasswordEncoder,比如使用BCryptPasswordEncoder。
那么怎么不对密码做加密处理呢?可以自定义一个PasswordEncoder,该类需实现org.springframework.security.crypto.password.PasswordEncoder
接口,一个自定义的PasswordEncoder如下:
public class JWTPasswordEncoder implements PasswordEncoder {
@Override
public String encode(CharSequence charSequence) {
//不做任何加密处理
return charSequence.toString();
}
@Override
public boolean matches(CharSequence charSequence, String s) {
//charSequence是前端传过来的密码,s是数据库中查到的密码
if (charSequence.toString().equals(s)) {
return true;
}
return false;
}
}
网友评论