3.2 密码编码器
一、密码编译器
SpringSecurity具有自己的密码编译器
SpringSecurity提供了多种密码编码器
Spring存在多种编码器的共存:DelegatingPasswordEncoder,允许以不同的格式验证密码,提供升级的可能性
@Bean public PasswordEncoder passwordEncoder() { // 默认编码算法的id,新的密码编码都会使用这个id对应的编码器 val idForEncode = "bcrypt"; // 要支持的多种编码器(map) val encoders = Map.of( idForEncode, new BCryptPasswordEncoder(), "SHA-1", new MessageDigestPasswordEncoder("SHA-1") ); return new DelegatingPasswordEncoder(idForEncoder, encoders); }如果使用了多编码形式,在密码存储时候需要在密码前面加上map的key,即
{id}encodedPassword形式存储;手动密码匹配:
encoder.matches(CharSequence, String)密码升级:实现
UserDetailsPasswordService中的updatePassword方法
最后更新于