自定义用户验证逻辑

自定义用户验证逻辑

处理用户信息获取逻辑

SpringSecurity获取用户信息逻辑是封装在 UserDetailService 接口中的.

基于用户名定位用户.

在实际执行中 , 搜索可能是大小写敏感的 , 或者不分大小写取决于 Spring Security的配置.

在这种情况下 , UserDetails 返回的对象可能有一个不同于什么情况的用户名实际上是被要求的。

@param UsernameNotFoundException 根据用户名到存储查询 , 如果不存在该用户名则会抛出该异常.

处理用户校验逻辑

通常 , 用户的密码校验是由springSecurity来完成的.

UserDetail

public interface UserDetails extends Serializable {
    // 用户权限组
	Collection<? extends GrantedAuthority> getAuthorities();
    // 帐号密码
	String getPassword();
    // 帐号名
	String getUsername();
    // 帐号是否过期
	boolean isAccountNonExpired();
    // 帐号是否被锁定
	boolean isAccountNonLocked();
    // 帐号密码是否过期
	boolean isCredentialsNonExpired();
    // 帐号是否可用.
	boolean isEnabled();
}

处理密码的加密和解密

PassWordEncoder

在springboot 2.0 之后需要使用 org.springframework.security.crypto包中的 PassWordEncodeer

    @Bean
	public PasswordEncoder passwordEncoder() {
		return new BCryptPasswordEncoder();
	}

在注册/登录的时候需要使用passWordEncoder()去转换非明文密码.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值