SpringBoot(6)-Shiro
目录
一、是什么
二、准备工作
2.1 环境搭建
2.2 自定义Realm配置类
2.3 自定义shiro配置类
三、实践
3.1 请求拦截
3.2 用户认证
3.3 用户授权
3.4 shiro和thymeleaf整合
一、是什么
是java的一个安全框架
核心三大对象:
1、Subject【用户】
2、SecurityManager【安全管理器】
3、Realm【连接数据】
二、准备工作
2.1 环境搭建
pom.xml导入依赖:thymeleaf、shiro整合spring的包
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.0</version>
</dependency>
2.2 自定义Realm配置类
继承AuthorizingRealm,并重写里面的认证和授权方法
2.3 自定义shiro配置类
创建三大核心对象
- Subject:ShiroFilterFactoryBean
- SecurityManager:DefaultWebSecurityManager
- Realm:上述自定义的Realm配置类
三、实践
3.1 请求拦截
实际应用中,若我们没有登陆去访问需要认证的资源,应该跳转到登录页面
3.2 用户认证
调用业务层去数据库中查找是否存在用户名,若查出user为null,则抛出异常;(注意注入Service层)
密码的判定shiro内部帮我们做
1、realm重写认证方法(判断用户信息)
2、controller层
3.3 用户授权
1、权限设置
2、realm重写授权方法(判断用户权限)
3.4 shiro和thymeleaf整合
实现功能:用户只能看见其对应权限的功能
1、导入shiro和thyme整合的包
<dependency>
<groupId>com.github.theborakompanioni</groupId>
<artifactId>thymeleaf-extras-shiro</artifactId>
<version>2.0.0</version>
</dependency>
2、在ShiroConfig中,注入ShiroDialect
这样就可以在视图模版中使用shiro标签来进行权限控制、用户认证等操作
3、添加命名空间
xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.thymeleaf.org/thymeleaf-extras-shiro"
4、前端