JeecgBoot 應(yīng)用 Spring Authorization Server

Spring Authorizaiton Server, 簡稱 sas漏麦,是一個授權(quán)服務(wù)器框架族奢,提供 OAuth2.1 與 Open Connect 1.0 認(rèn)證規(guī)范及其他規(guī)范的實現(xiàn)碧信,它建立在 Spring Security 之上耕蝉,為構(gòu)建 OpenID Connect 1.0 Identity Provider 和 OAuth2 授權(quán)服務(wù)器產(chǎn)品提供了一個安全铐刘、輕量級和可定制的基礎(chǔ)歧杏。

升級必要性

Spring Authorization Server 項目是 Spring 團(tuán)隊對原有的 Spring Security Oauth 模塊的升級镰惦,同時對 Oauth 協(xié)議的實現(xiàn)由 2.0 升級到最新的 2.1 版本,并且現(xiàn)在已經(jīng)停止了對該模塊的維護(hù)犬绒。另外 Spring 團(tuán)隊基于 Spring Security Oauth 的經(jīng)驗旺入,對大量代碼進(jìn)行了簡化,使認(rèn)證運(yùn)行效率變得更高凯力,可介入性以及可兼容性比起以前變得更加優(yōu)秀茵瘾。

OAuth 2.1 基于 Oauth2 的基礎(chǔ)上進(jìn)行更新,考慮到安全性的問題沮协,移除了 OAuth2 的簡化模式龄捡、密碼模式。由于現(xiàn)在越來越多的硬件設(shè)備具備智能化功能慷暂,對設(shè)備認(rèn)證也逐漸有了要求聘殖,OAuth2.1 本次新增了設(shè)備碼認(rèn)證模式,針對于無瀏覽器類設(shè)備進(jìn)行登錄使用行瑞。

JEECG 項目介紹

JeecgBoot 是一款基于 BPM 的低代碼平臺奸腺!前后端分離架構(gòu) SpringBoot 2.x/3.x,SpringCloud血久,Ant Design&Vue3突照,Mybatis-plus,Shiro氧吐,JWT讹蘑,支持微服務(wù)。強(qiáng)大的代碼生成器讓前后端代碼一鍵生成筑舅,實現(xiàn)低代碼開發(fā)座慰! JeecgBoot 引領(lǐng)新低代碼開發(fā)模式 OnlineCoding-> 代碼生成器 -> 手工 MERGE, 幫助 Java 項目解決 70% 的重復(fù)工作翠拣,讓開發(fā)更多關(guān)注業(yè)務(wù)版仔,既能快速提高效率,節(jié)省研發(fā)成本,同時又不失靈活性蛮粮!一系列低代碼能力:Online 表單益缎、Online 報表、Online 圖表然想、儀表盤 / 門戶設(shè)計莺奔、表單設(shè)計、流程設(shè)計又沾、報表設(shè)計弊仪、大屏設(shè)計 等等...

JEECG 開源項目于 2012 年底發(fā)布首版本,到 2013 年 CSDN/ITEYE 專家訪談為大家所認(rèn)知杖刷,從開始的谷歌 CODE 開源到現(xiàn)在的 Github,吸引了一大批粉絲驳癌!截止目前已近十個春秋滑燃,目前 Github 的 Star 近 4 萬、論壇會員達(dá) 2 萬多颓鲜、QQ 千人群超 40 個表窘。 JEECG BOOT 目前在 Github 中文 JAVA 項目排名第三位、Github 全球 JAVA 項目排名第 19 位甜滨、Github 上 JAVA 開發(fā)框架項目排名第一乐严。

JeecgBoot 登錄認(rèn)證

JeecgBoot 目前有四種登錄情況:

  1. PC 端用戶名密碼登錄(APP 登錄)
  2. 手機(jī)號登錄
  3. 三方社交平臺登錄(Github、釘釘衣摩、微信昂验、企業(yè)微信)
  4. CAS 登錄

目前這四種登錄情況的核心都是使用的自建 JWT token,使用 shiro 框架完成的登錄驗證及請求授權(quán)驗證艾扮,由 JeecgBoot 本身完全請求用戶的密碼驗證既琴、驗證碼驗證等等,兩個部分可以看作是完全分離的泡嘴。如同冰箱的功能是冷藏 + 冷凍甫恩,而我們需要保證放進(jìn)冰箱的食品有效期。

JeecgBoot 如何切換

在前文我們講到 JeecgBoot 的用戶驗證與授權(quán)驗證是分離式的酌予,所以我們本次切換的注意力只需要放在替換現(xiàn)在的 shiro磺箕,使用 Spring Authorization Server 進(jìn)行登錄驗證及請求授權(quán)驗證。

Spring Authoriztion Server 默認(rèn)支持授權(quán)碼模式抛虫、客戶端模式松靡、設(shè)備碼模式及刷新碼模式,并且提供了對應(yīng)的接口莱褒,同時也支持自定義擴(kuò)展击困。我們可以對 AuthenticationProvider 接口進(jìn)行實現(xiàn),具體實現(xiàn)邏輯可根據(jù)自身需求而定,最終只需要返回一個 OAuth2AccessTokenAuthenticationToken 對象即可阅茶。JeecgBoot 本次參考了 Shiro 原有的邏輯進(jìn)行實現(xiàn)蛛枚,只不過本次調(diào)整了手動生成 Token 轉(zhuǎn)成由 Spring Authorization Server 生成 Token,同時使用 Spring Authorization Server 對 redis 的集成脸哀,對生成的認(rèn)證信息保存至 redis 中蹦浦,JeecgBoot 剛好可以利用這點,完成對在線用戶強(qiáng)制退出功能的繼承撞蜂。

切換之前的邏輯路線為:

  1. 用戶請求登錄
  2. JeecgBoot 完成用戶密碼盲镶、驗證碼等認(rèn)證
  3. 使用用戶名密碼手動生成 JWT token
  4. 用戶攜帶 token 進(jìn)行請求時,由 shiro 對 token 進(jìn)行攔截獲取其中的用戶名蝌诡,對用戶進(jìn)行 token 校驗及權(quán)限校驗

切換之后的邏輯路線為:

  1. 用戶請求登錄
  2. JeecgBoot 完成用戶密碼溉贿、驗證碼等認(rèn)證。
  3. 使用用戶名訪問基于 Spring Authorization Server 擴(kuò)展的認(rèn)證模式進(jìn)行 token 生成浦旱,并保存至 redis 中宇色。
  4. 用戶攜帶 token 進(jìn)行請求時,Spring Authorization Server 對 token 進(jìn)行攔截獲取其中的用戶名颁湖,對用戶進(jìn)行 token 校驗及權(quán)限校驗宣蠕。

JeecgBoot 切換的原因

Jeecg 考慮到 JeecgBoot 的用戶群體越來越龐大,甚至部分用戶對編碼幾乎都不了解甥捺,JeecgBoot 需要降低使用的便利性抢蚀、安全性、擴(kuò)展性镰禾。而 Shiro 相對來說皿曲,功能太過單薄,擴(kuò)展性不足羡微,無法與 JeecgBoot 本身融為一體谷饿。本次 Spring Authorization Server 的加入,可以使認(rèn)證邏輯與 JeecgBoot 融為一體妈倔,并且自動滿足了對通用性認(rèn)證博投、跨平臺性藤抡、多平臺性認(rèn)證協(xié)議完成了集成哼审,讓 JeecgBoot 在認(rèn)證安全領(lǐng)域得到了補(bǔ)齊,更加深層次的保障了普通用戶對訪問安全功能的需要职烧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捧挺,一起剝皮案震驚了整個濱河市虑绵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闽烙,老刑警劉巖翅睛,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件声搁,死亡現(xiàn)場離奇詭異,居然都是意外死亡捕发,警方通過查閱死者的電腦和手機(jī)疏旨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扎酷,“玉大人檐涝,你說我怎么就攤上這事》òぃ” “怎么了谁榜?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凡纳。 經(jīng)常有香客問我窃植,道長,這世上最難降的妖魔是什么荐糜? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任撕瞧,我火速辦了婚禮,結(jié)果婚禮上狞尔,老公的妹妹穿的比我還像新娘。我一直安慰自己巩掺,他們只是感情好偏序,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胖替,像睡著了一般研儒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上独令,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天端朵,我揣著相機(jī)與錄音,去河邊找鬼燃箭。 笑死冲呢,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的招狸。 我是一名探鬼主播敬拓,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼裙戏!你這毒婦竟也來了乘凸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤累榜,失蹤者是張志新(化名)和其女友劉穎营勤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡葛作,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年寿羞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片进鸠。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡稠曼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出客年,到底是詐尸還是另有隱情霞幅,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布量瓜,位于F島的核電站司恳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绍傲。R本人自食惡果不足惜扔傅,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烫饼。 院中可真熱鬧猎塞,春花似錦、人聲如沸杠纵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽比藻。三九已至铝量,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間银亲,已是汗流浹背慢叨。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留务蝠,地道東北人拍谐。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像请梢,于是被迫代替她去往敵國和親赠尾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容