【SpringSecurity】用户自定义认证

本文介绍了如何在SpringSecurity中自定义用户认证逻辑,包括实现UserDetailsService接口以处理用户信息获取,UserDetails接口用于封装用户校验信息,以及使用PasswordEncoder进行密码加密解密。重点在于loadUserByUsername方法的实现,以及如何处理用户状态和密码匹配。文章鼓励读者根据提供的思路和网上资源进行实践操作。

 

自定义用户认证逻辑 

 

  • 处理用户信息获取逻辑-UserDetailsService 

用户信息被封装在一个接口里面的UserDetailsService,由SpringSecurity提供,如下: 
这里写图片描述 
这里写图片描述
该接口里面有一个loadUserByUsername方法,传入参数为userName,返回值为userDetails,作用为:根据用户在前面输入用户名,从存储系统(数据库)读取一个用户信息,这个用户信息封装在一个userDetails实现类里面,该方法处理完毕返回以后,SpringSecurity拿着这个用户信息去做一些处理和校验,处理和校验都通过了,会把这个用户信息放到session里面,认为登录成功了,如果通过userName找不到用户信息,就会抛出一个UserNameNotFoundException异常,异常拦截器会处理该异常。开发者可以自定义一个实现UserDetailsService接口的类,来个性化实现里面该接口的loadUserByUsername的方法;如下: 

 

 

 

@Component
public class MyUserDetailsService implements UserDetailsService {
    private Logger logger = LoggerFac
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

女汉纸一枚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值