spring-boot-plus V1.3.0 发布,SpringBoot+Shiro+JWT 权限管理
spring-boot-plus [V1.3.0-RELEASE] 2019.10.06
⭐️ New Features
- 集成Apache Shiro安全框架
- 集成JWT 跨域身份验证解决方案
⚡️ Optimization
- 优化代码生成模块格式
- mybatis控制台打印SQL执行语句及结果集
- Redis使用Jackson序列化
RedisTemplateConfigGenericJackson2JsonRedisSerializer - 删除security目录
- 修改sys_user表结构
📝 Added/Modified
- Add
SpringBootPlusFilterConfig过滤器配置类 - Add
SpringBootPlusException,DaoException自定义异常类 - Add
ShiroConfig,ShiroPermissionConfig,ShiroPropertiesShiro配置类 - Add
JwtCredentialsMatcher, 'JwtFilter', 'JwtProperties', 'JwtRealm', 'JwtToken' JWT配置 - Add
LoginRedisService, 'LoginRedisServiceImpl' Redis登陆缓存处理
🐞 Bug Fixes
- fix startup.sh启动jar指定logback.xml
📔 Documentation
🔨 Dependency Upgrades
- Upgrade to
Fastjson1.2.61 - Add
shiro-spring-boot-starter1.4.1 - Add
java-jwt3.8.3 - Add
mapstruct,mapstruct-processor1.3.0.Final对象属性复制 - Add
ini4j0.5.4ini格式文件处理
SpringBoot+Shiro+JWT权限管理
Shiro
- Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。
- 使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
三个核心组件:
Subject,SecurityManager和Realms.
- Subject代表了当前用户的安全操作,即“当前操作用户”。
- SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
-
Realm: Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。
-
ShiroBasicArchitecture
-
ShiroArchitecture
JWT
- JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案
- JSON Web令牌是一种开放的行业标准 RFC 7519方法,用于在双方之间安全地表示声明。
JWT 数据结构
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJodHRwczovL3NwcmluZ2Jvb3QucGx1cyIsIm5hbWUiOiJzcHJpbmctYm9vdC1wbHVzIiwiaWF0IjoxNTE2MjM5MDIyfQ.1Cm7Ej8oIy1P5pkpu8-Q0B7bTU254I1og-ZukEe84II
JWT有三部分组成:
Header:头部,Payload:负载,Signature:签名
SpringBoot+Shiro+JWT
pom.xml Shiro依赖
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-starter</artifactId>
<version>1.4.1</version>
</dependency>
pom.xml JWT依赖
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.8.3</version>
</dependency>
Reference
Shiro
JWT
spring-boot-plus


