【Java】若以框架(ruoyi-master)——9.shiro安全框架
若依采用了Apache Shiro是Java的一个安全框架。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。其不仅可以用在 JavaSE环境,也可以用在 JavaEE 环境。
之前,为了了解shiro,我做了一些入门:
- 【shiro】1.快速入门
- 【shiro】2.认证、授权、源码分析
- 【shiro】3.Springboot实现缓存
- 【shiro】4.Springboot集成shiro
- 【shiro】5.多个Realm的使用和实现
- 【shiro】6.退出系统
- 【shiro】 7.RememberMe(记住我)功能
- 【shiro】8.后端服务接口注释
- 【shiro】9.前端页面授权控制
- 【shiro】10.会话管理
学会了SPringboot集成shiro,登录、shiro配置、缓存(Redis和EhCache)、记住我,接口注释、前端授权、会话管理等。接下来,我们看看若依(前后端没有分离的版本)如何实现shiro安全控制的。
1. 查看依赖
打开主项目的pom.xml。依赖+注释很清楚。我们可以看到,使用了shiro框架、EhCache缓存、使用thymlaf模板与shiro整合。
2. 查看配置
打开 ruoyi-framework 项目,可以看到配置目录config包下的ShiroConfig.java和shiro包。shiro包是config配置下,进一步引用。由于基础知识,我们知道realm放置自定义的realm域(认证和授权方法)、remberMe(记住我)方法 、web(过滤器),serice(服务,会变引用)、utils(工具方法,会被引用)。
所以,我们下打开配置文件ShiroConfig.java
我们可以找到第一步shiro配置方法。设置安全管理器、指定一些登录页面、权限认证失页面、匿名访问内容、退出方法等不一而足。具体到配置,使用的东西更多,可以根据这些源码,一点一点儿学。
realm授权和登录
3. 注解
我们打开很controller(接口)可以找到 @RequiresPermissions ,这些注解用于确定该接口的权限。访问接口时,可以自动判定该用户是否有权限。
4.前端页面授权
这里,前面页面会基于不同权限,显示不同的内容。