文章目录
- 核心配置类
- 方法注解开关
- 自定义认证规则
- 自定义获取用户详情
- 自定义注解实现匿名访问
- 自定义验证异常处理类
- 自定义登出逻辑流程
- 自定义JWT拦截器
核心配置类
核心配置文件 com.ruoyi.framework.config.SecurityConfig.java
方法注解开关
开启全局方法权限配置,默认禁用 @EnableGlobalMethodSecurity
prePostEnabled = true 开启方法级别访问权限
开启之后才可以在方法上使用 @PreAuthorize 注解
通过以下方法重新获取AuthenticationManager 的bean实例,解决通过@Autowired注解 无法直接注入 AuthenticationManager。
自定义认证规则
继承Spring Security核心配置类WebSecurityConfigurerAdapter,可以根据需求通过重写方法实现自定义的逻辑流程。
重写认证规则 configure方法实现自定义认证规则
自定义获取用户详情
身份认证接口configure方法实现获取用户、角色、权限相关信息的逻辑。
自定义注解实现匿名访问
自定义@Anonymous注解添加到方法上可以实现跳过权限验证。
①通过com.ruoyi.framework.config.properties.PermitAllUrlProperties类检验请求方法上是否有@Anonymous注解,如果存在则添加到一个集和数组中。
②在执行权限验证之前,将集和数组中这些url设置为可以允许访问,类似于下面登录login接口,只是用到2种不同的写法而已。
自定义验证异常处理类
SpringSecurity 验证过程中存在异常时,则抛出异常,有异常抛出的是英文的,通过自定义异常类实现统一管理异常返回。
全局异常拦截器类 org.springframework.security.web.access.ExceptionTranslationFilter
自定义登出逻辑流程
1.删除用户缓存记录
2.记录用户退出日志
3.以流的形式封装返回报文,响应浏览器
自定义JWT拦截器
这个会在jwt章节 详细讲解