很感谢b站up主三更录制的SpringSecurity课程学习,这篇博客也是总结了我的收获,我将以实战代码的形式重新梳理我一遍所学习的知识,供我以后能够快速回忆。
快速入门添加依赖新建测试接口配置SpringSecurity登录用户 username-user password控制台从内存获取 基于RBAC的认证授权整套流程
根据认证流程图可知要重写UserDetailService 从原本的内存中生成密码到从数据库查询用户信息,权限信息,返回封装对象开头过滤器不符合要求(要向前端返回token的要求),我们要重新登录接口登录接口的要求是要封装authentication对象,调用AuthenticationManager接口 ,在redis存入authentication对象(方便后期校验),返回token给前端因为数据库的密码不是原文,SpringSecurity中多采用BCryptPasswordEncoder方法加密 要注入securityConfig配置中自定义一个过滤器,用来验证请求,步骤有获取前端token,解析token获取userId,在redis中根据userId查询loginUser,封装authentication到SecurityContextHolder中。注销功能接口:在SecurityContextHolder中获取loginUser,获取userId,在redis删除key权限相关配置:authentication对象中一定有对应的权限方法重写,放入SecurityContextHolder中自会验证,方法调用@PreAuthorize(“hasAuthority(‘system:dept:list’)”) 即可 也可以通过配置文件配置权限访问,前提要在配置类开启@EnableGlobalMethodSecurity(prePostEnabled = true)。
详情可以去看三更对应视频文档,十分详细



