SpringSecurity使用了自定义的加密方式,需要用用户名做为盐 请问怎么在自定义的passwordencoder中获取用户登录的用户名呢?
SpringSecurity使用了自定义的加密方式,需要用用户名做为盐 请问怎么在自定义的passwordencoder中获取用户登录的用户名呢?
使用AbstractPasswordEncoder
,定义ByteKeyGenerator
,将 UsernamePasswordAuthticationFilter
注入进去,重写generateKey()
为 username 的字节数组。
4 回答1.6k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
4 回答2.2k 阅读
3 回答982 阅读✓ 已解决
2 回答807 阅读✓ 已解决
1 回答2.6k 阅读
1:自定义provider,你完全自己掌控登陆逻辑

2:默认的DaoAuthenticationProvider,在一次认证流程中,先根据userDetailService获取userDetail,然后再做密码匹配,你可以自己在userDetailService查用户信息时,将你想要的数据丢到threadlocal中,在密码校验时自己取出来