SpringBoot 整合 Shiro
直接使用 Cookie 和 Session 来进行认证~
配置环境
看网上的教程都是将如何自己配置 Shiro 整合的,实在是无语,搜索了一下果然有 Shiro 的启动器,官网地址 Integrating Apache Shiro into Spring-Boot Applications
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-web-starter</artifactId>
<version>1.7.1</version>
</dependency>
Shiro 默认过滤器
Shiro 提供和多个默认的过滤器,我们可以用这些过滤器来配置过滤指定 url 的访问权限。也可以继承这些过滤器进行重写
记住这些过滤器,因为很多场景需要自己重写,例如跨域请求时就可以重写 UserFilter

权限控制的注解
Shiro 常用的权限控制注解,可以在控制器类上使用
| 注解 | 功能 |
|---|---|
| @RequiresGuest | 只有游客可以访问 |
| @RequiresAuthentication | 需要登录才能访问 |
| @RequiresUser | 已登录的用户或“记住我”的用户能访问 |
| @RequiresRoles | 已登录的用户需具有指定的角色才能访问 |
| @RequiresPermissions | 已登录的用户需具有指定的权限才能访问 |
搭建应用环境
创建用户实体
@Data
public class User {
private Long uid; // 用户id
private String uname; // 登录名,不可改
private String nick; // 用户昵称,可改
private String pwd; // 已加密的登录密码
private String salt; // 加密盐值
private Date created; // 创建时间
private Date updated; // 修改时间
private Set<String> roles = new HashSet<>(); //用户所有角色值,用于shiro做角色权限的判断
private Set<String> perms = new HashSet<>(); //用户所有权限值,用于shiro做资源权限的判断
}