SpringBoot整合Shiro学习DEMO
什么是Shiro?Shiro是一款主流的Java安全框架,它不依赖任何容器,可以运行在JavaSE还有JavaEE项目中,它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密等操作。
1、Shiro主要的组件
在Shiro中 有角色(role)、权限(perms)
会给角色赋予权限,在给用户赋予角色
1、UsernamePasswordToken:Shiro用来封装用户的登录信息,使用用户的登录信息来创建Token。
2、SecurityManager:Shiro的抽象部分,负责安全认证和授权。
3、Subject:Shiro的一个抽象概念,包含了用户信息。
4、Realm:开发者定义的模块,可以根据项目的需求在里面开发所需要的验证和授权的逻辑全部都写在Realm中。
5、AuthenticationInfo:用户的角色信息集合,认证的时候使用。
6、AuthorizationInfo:角色的权限信息集合,授权时使用。
7、DefaultWebSecurityManager:安全管理器,开发者自定义的Realm要注入到DefaultWebSecurityManager进行管理才能生效。
8、ShiroFilterFactoryBean:过滤器工厂,Shiro的运行规则是由开发者来自定义的,Shiro去创建一个个对应的Filter来进行实现。
2、Spring Boot整合Shiro
1、通过IDEA创建Spring Boot的Maven工程,并在POM.XML来进行依赖导入。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions