SpringSecurity 登录接口

登录接口 独立实现
先安装依赖: springboot 2.5.0之前,不然SecurityConfig 文件会出问题,还有一些utils
SpringSecurity 登录接口_第1张图片

认证:
SpringSecurity 登录接口_第2张图片
SpringSecurity 登录接口_第3张图片

自定义登录接口:调用AuthenticationManager的方法进行认证
SpringSecurity 登录接口_第4张图片

这里的userService是实现用户注册,用户信息的操作的
自定义UserDetailsServiceImpl:在这个实现类中去查询数据库。自定义一个类实现UserDetails类(里面好几处都要改)
调用loadUserByUsername方法查询用户,InMemoryUserDetailManager是在内存里查找,我们自己实现UserDetailsService的实现类UserDetailsServiceImpl,从数据库里查
SpringSecurity 登录接口_第5张图片

返回UserDetails对象
通过PasswordEncoder对比UserDetails中的密码和Authentication的密码是是否正确
SpringSecurity 登录接口_第6张图片
SpringSecurity 登录接口_第7张图片
如果正确就把UserDetail中的权限信息没置到Authentication对象中
再回到BlogLoginServicelmpl中如果认证通过生成jwt,把用户信息存入redis中
SpringSecurity 登录接口_第8张图片

校验:

①定义Jwt认证过滤器
获取token
解析token获取其中的userid
从redis中获取用户信息
存入SecurityContextHolder
SpringSecurity 登录接口_第9张图片

配置SecurityConfig
一个是登陆认证,一个是校验(判断token是否正确)
一个是登录时候的认证,一个是其他链接要校验携带的token是否正确。

认证授权失败处理(自定义异常处理)
SpringSecurity 登录接口_第10张图片
配置securityConfig
SpringSecurity 登录接口_第11张图片

统一异常处理

你可能感兴趣的:(spring,boot,后端,java)