> Linux新闻 >

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序列化 RedisTemplateConfig GenericJackson2JsonRedisSerializer
  • 删除security目录
  • 修改sys_user表结构

📝 Added/Modified

  • Add SpringBootPlusFilterConfig 过滤器配置类
  • Add SpringBootPlusException,DaoException 自定义异常类
  • Add ShiroConfig, ShiroPermissionConfig, ShiroProperties Shiro配置类
  • Add JwtCredentialsMatcher, 'JwtFilter', 'JwtProperties', 'JwtRealm', 'JwtToken' JWT配置
  • Add LoginRedisService, 'LoginRedisServiceImpl' Redis登陆缓存处理

🐞 Bug Fixes

  • fix startup.sh启动jar指定logback.xml

📔 Documentation

🔨 Dependency Upgrades

  • Upgrade to Fastjson 1.2.61
  • Add shiro-spring-boot-starter 1.4.1
  • Add java-jwt 3.8.3
  • Add mapstruct, mapstruct-processor 1.3.0.Final 对象属性复制
  • Add ini4j 0.5.4 ini格式文件处理

 

SpringBoot+Shiro+JWT权限管理

Shiro

  • Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。
  • 使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

三个核心组件:Subject, SecurityManager 和 Realms.

  • Subject代表了当前用户的安全操作,即“当前操作用户”。
  • SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
  • Realm: Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。

  • ShiroBasicArchitecture
    ShiroBasicArchitecture

  • ShiroArchitecture
    ShiroArchitecture

JWT

  • JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案
  • JSON Web令牌是一种开放的行业标准 RFC 7519方法,用于在双方之间安全地表示声明。

JWT 数据结构

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJodHRwczovL3NwcmluZ2Jvb3QucGx1cyIsIm5hbWUiOiJzcHJpbmctYm9vdC1wbHVzIiwiaWF0IjoxNTE2MjM5MDIyfQ.1Cm7Ej8oIy1P5pkpu8-Q0B7bTU254I1og-ZukEe84II

jwt

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




(责任编辑:IT)