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 开发框架项目排名第一。

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 在认证安全领域得到了补齐,更加深层次的保障了普通用户对访问安全功能的需要。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 228,443评论 6 532
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,530评论 3 416
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 176,407评论 0 375
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,981评论 1 312
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,759评论 6 410
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,204评论 1 324
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,263评论 3 441
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,415评论 0 288
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,955评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,782评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,983评论 1 369
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,528评论 5 359
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,222评论 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,650评论 0 26
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,892评论 1 286
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,675评论 3 392
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,967评论 2 374

推荐阅读更多精彩内容