UserDetailsService

02 - Spring Security自定义用户逻辑

用户信息封装在UserDetailsService的实现类中,返回以后Spring Security会拿到用户信息去做一些处理和校验,校验成功把用户放在session中;如果失败,就会UsernameNotFoundException.

User

02 - Spring Security自定义用户逻辑

username:账户
password:密码
authorities:用户角色
accountNonExpired:账户是否过期
accountNonLocked:账户是否锁定
credentialsNonExpired:密码是否过期
enabled:账户启动还是禁用

PasswordEncoder

02 - Spring Security自定义用户逻辑

用户注册往数据库中插入数据时,使用encode()方法进行加密
matches方法是由Spring Security来调用的 登陆过程中拿到UserDetails后会拿到password,将UserDetails中的密码和登录时的密码进行比对,如果比对false就会抛出异常

测试:当实现了加密配置,DB(User)也需要加密才能进行匹配

BrowserSecurityConfig
02 - Spring Security自定义用户逻辑
UserDetailsService的实现
02 - Spring Security自定义用户逻辑
password :123456
02 - Spring Security自定义用户逻辑
登陆逻辑成功
02 - Spring Security自定义用户逻辑
Spring Security的passwordEncoder每次加密后的密码是不一样的,它会随机生成一个盐,在密码生成时将随机生成的盐混合在数据库密码这个字串中,每次判断的时候根据随机生成的盐反推回来得到当时加密的串,最终来判断是否匹配
(随机)盐 -> 保证串

相关文章:

  • 2022-12-23
  • 2021-11-21
  • 2022-12-23
  • 2021-08-14
  • 2021-11-29
  • 2021-06-08
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-23
  • 2021-04-09
  • 2022-12-23
  • 2021-10-11
  • 2021-09-29
  • 2022-02-14
相关资源
相似解决方案