SpringSecurity 登录接口

登录接口 独立实现
先安装依赖: springboot 2.5.0之前,不然SecurityConfig 文件会出问题,还有一些utils
在这里插入图片描述
引入依赖后我们在尝试去访问之前的接口就会自动跳转到一个Springsecurity的默认登陆页面,默认用户名是user,密码会输出在控制台。
必须登陆之后才能对接口进行访问。
在这里插入图片描述
注意如果有定义passwordEncoder,先注释掉。不然会报错说你输入的不是BCrypt
在这里插入图片描述

认证:
(登录校验流程)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

自定义登录接口:调用AuthenticationManager的方法进行认证
在这里插入图片描述

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

返回UserDetails对象
通过PasswordEncoder对比UserDetails中的密码和Authentication的密码是是否正确
在这里插入图片描述
在这里插入图片描述
如果正确就把UserDetail中的权限信息没置到Authentication对象中
再回到BlogLoginServicelmpl中如果认证通过生成jwt,把用户信息存入redis中
在这里插入图片描述

校验:

①定义Jwt认证过滤器
获取token
解析token获取其中的userid
从redis中获取用户信息
存入SecurityContextHolder
在这里插入图片描述

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

认证授权失败处理(自定义异常处理)
在这里插入图片描述
配置securityConfig
在这里插入图片描述

统一异常处理

猜你喜欢

转载自blog.csdn.net/zhangaob/article/details/130449316
今日推荐