当前位置: 首页 > article >正文

JeecgBoot 应用 Spring Authorization Server

Spring Authorizaiton Server,简称sas,是一个授权服务器框架,提供OAuth2.1与Open Connect 1.0认证规范及其他规范的实现,它建立在Spring Security之上,为构建OpenID Connect 1.0 Identity Provider和OAuth2授权服务器产品提供了一个安全、轻量级和可定制的基础。

升级必要性

Spring Authorization Server项目是Spring 团队对原有的Spring Security Oauth模块的升级,同时对Oauth协议的实现由2.0升级到最新的2.1版本,并且现在已经停止了对该模块的维护。另外Spring 团队基于Spring Security Oauth的经验,对大量代码进行了简化,使认证运行效率变得更高,可介入性以及可兼容性比起以前变得更加优秀。

OAuth 2.1基于Oauth2的基础上进行更新,考虑到安全性的问题,移除了OAuth2的简化模式、密码模式。由于现在越来越多的硬件设备具备智能化功能,对设备认证也逐渐有了要求,OAuth2.1 本次新增了设备码认证模式,针对于无浏览器类设备进行登录使用。

JEECG项目介绍

JeecgBoot是一款基于BPM的低代码平台!前后端分离架构 SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发! JeecgBoot引领新低代码开发模式 OnlineCoding-> 代码生成器-> 手工MERGE, 帮助Java项目解决70%的重复工作,让开发更多关注业务,既能快速提高效率,节省研发成本,同时又不失灵活性!一系列低代码能力:Online表单、Online报表、Online图表、仪表盘/门户设计、表单设计、流程设计、报表设计、大屏设计 等等…

JEECG开源项目于2012年底发布首版本,到2013年CSDN/ITEYE专家访谈为大家所认知,从开始的谷歌CODE开源到现在的Github,吸引了一大批粉丝!截止目前已近十个春秋,目前Github的Star近4万、论坛会员达2万多、QQ千人群超40个。 JEECG BOOT目前在 Github中文JAVA项目排名第三位、Github全球 JAVA项目排名第19位、Github上JAVA开发框架项目排名第一。

  • Github地址:https://github.com/jeecgboot/JeecgBoot

JeecgBoot登录认证

JeecgBoot目前有四种登录情况:

  1. PC端用户名密码登录(APP登录)
  2. 手机号登录
  3. 三方社交平台登录(Github、钉钉、微信、企业微信)
  4. CAS登录

目前这四种登录情况的核心都是使用的自建JWT token,使用shiro框架完成的登录验证及请求授权验证,由JeecgBoot本身完全请求用户的密码验证、验证码验证等等,两个部分可以看作是完全分离的。如同冰箱的功能是冷藏+冷冻,而我们需要保证放进冰箱的食品有效期。

JeecgBoot如何切换

在前文我们讲到JeecgBoot的用户验证与授权验证是分离式的,所以我们本次切换的注意力只需要放在替换现在的shiro,使用Spring Authorization Server进行登录验证及请求授权验证。

Spring Authoriztion Server默认支持授权码模式、客户端模式、设备码模式及刷新码模式,并且提供了对应的接口,同时也支持自定义扩展。我们可以对AuthenticationProvider接口进行实现,具体实现逻辑可根据自身需求而定,最终只需要返回一个OAuth2AccessTokenAuthenticationToken对象即可。JeecgBoot本次参考了Shiro原有的逻辑进行实现,只不过本次调整了手动生成Token转成由Spring Authorization Server生成Token,同时使用Spring Authorization Server对redis的集成,对生成的认证信息保存至redis中,JeecgBoot刚好可以利用这点,完成对在线用户强制退出功能的继承。

切换之前的逻辑路线为:

  1. 用户请求登录
  2. JeecgBoot完成用户密码、验证码等认证
  3. 使用用户名密码手动生成JWT token
  4. 用户携带token进行请求时,由shiro对token进行拦截获取其中的用户名,对用户进行token校验及权限校验

切换之后的逻辑路线为:

  1. 用户请求登录
  2. JeecgBoot完成用户密码、验证码等认证。
  3. 使用用户名访问基于Spring Authorization Server扩展的认证模式进行token生成,并保存至redis中。
  4. 用户携带token进行请求时,Spring Authorization Server对token进行拦截获取其中的用户名,对用户进行token校验及权限校验。

JeecgBoot切换的原因

Jeecg考虑到JeecgBoot的用户群体越来越庞大,甚至部分用户对编码几乎都不了解,JeecgBoot需要降低使用的便利性、安全性、扩展性。而Shiro相对来说,功能太过单薄,扩展性不足,无法与JeecgBoot本身融为一体。本次Spring Authorization Server的加入,可以使认证逻辑与JeecgBoot融为一体,并且自动满足了对通用性认证、跨平台性、多平台性认证协议完成了集成,让JeecgBoot在认证安全领域得到了补齐,更加深层次的保障了普通用户对访问安全功能的需要。


http://www.kler.cn/a/286364.html

相关文章:

  • 第31章 测试驱动开发中的设计模式与重构解析(Python 版)
  • 回顾:Maven的环境搭建
  • 【MySQL】初始MySQL、库与表的操作
  • 小程序-视图与逻辑
  • 开关电路汇总
  • 【时时三省】(C语言基础)文件的随机读写
  • leetcode5最长回文子串
  • 【Leetcode 2341 】 数组能形成多少数对 —— 去重
  • 图为科技闪耀双展,AI之星智领未来
  • element的日期时间修改时间没有秒以及默认的时间时分修改
  • 数字化转型的内容框架解析,附华为数字化转型内容框架及方法论
  • 深度学习100问32:什么是梯度消失
  • 【开源 Mac 工具推荐之 5】tldr:简洁明了的命令行手册显示工具
  • 国密起步4:GmSSL3生成证书并使用tls(SM2、SSL)
  • 【C++ Primer Plus习题】8.7
  • SpringBoot3集成Spring Authorization Server搭建服务认证中心
  • Docker(完整实验版)
  • 了解内网穿透以及简单应用
  • 面试经典算法150题系列-找出字符串中第一个匹配项的下标
  • 从Vue的Weex迁移到Rax Weex
  • 深度学习与大模型第1课环境搭建
  • Unity编辑器开发 Immediate Mode GUI (IMGUI)
  • Java源码学习之高并发编程基础——AQS源码剖析之阻塞队列(下)
  • 深度学习实战1--决策树与随机森林(最新版本不报错)
  • 苹果笔记本电脑能不能玩游戏?苹果电脑玩游戏咋样?
  • UE5 微软输入法输入中文崩溃