亚洲精品国产情侣av在线_91亚洲国产成人久久精品网站_亚洲AV无码专区电影在线观看_亚洲AV无码专区亚洲AV桃

首頁 > 要聞 > > 正文

SpringSecurity+OAuth2.0的改造

2023-07-03 16:33:00    來源:Java架構學習指南

背景

最近,公司的標準B端產品,遇到了兩個客戶的定制化需求:

1.A客戶公司要求產品需要集成他們的單點登錄,客戶還提出來,他們今年沒有這方面的預算,要求自己在我們的源碼基礎上二開。


【資料圖】

2.B客戶公司說他們集團有要求,產品都需要集成雙因子認證登錄的功能,同樣他們登錄也要求接入他們的用戶中心。

我們的產品登錄認證是基于# SpringSecurity+OAuth2.0。

看起來登錄認證,接入客戶的用戶中心這個場景在安全的大背景下,是一個普遍的需求場景了,遂納入了迭代版本,同時考慮到后續版本升級及維護成本,進行統一的設計,留好接口,做到良好的代碼隔離及擴展。

我的工作思路

1.接到這種需求,首先第一考慮的當然是搜索,github上找現成方案,hahah,沒錯,面相搜索的編程原則不能丟,用經過別人實踐的方案,或者是這個模塊的通用解決方案,不用自己想歪招~

2.當我查了半天,發現S# SpringSecurity+OAuth2.0原理解釋的文章一大堆,但是真正關于這兩個需求相關的方案很少,僅有的幾篇要么寫的不清楚,要么不是我想要的,無奈還是得自己調研,做方案設計。

tips:
SpringSecurity+OAuth2.0我只是以前作為學習了解過,最多寫過demo,之前沒有負責過登錄模塊,并且好幾年了,也只是了解寫概念和基本流程,并不足以支撐我進行方案設計和基SpringSecurity+OAuth2.0的改造。那就只能重新回顧原理去了。

這里為什么說不足以支撐我做方案設計呢,我個人認為SpringSecurity+OAuth2.0的方案,框架封閉程度太高了。

幾個概念

1.OAuth2.0

2.SpringSecurity+OAuth2.0

3.單點登錄

這幾個概念比較普遍了,不知道的也可以網上搜一下,都寫的比較透徹了。

4.雙因子登錄可能有些人不太清楚,這里重點說一下:

其實這也不是新概念了,早年的銀行U盾+用戶名密碼也是雙因子的一種。 就舉個現在C端常用的例子吧:

正常你可能用戶名+密碼就完成了登錄,但是當你某一天去外地出差,在輸入用戶名密碼后,跳轉到了另一個頁面要求你用短信驗證碼做二次認證,大概就是這么個場景。概括的說:在系統基于大數據識別到風險或者異常行為,開啟第二種登錄認證方式。

談談我的設計方案

根據需求背景,那我希望的是:

1.三方登錄集成:
SpringSecurity的用戶名密碼認證,可以基于策略模式,來實現。(基于本地的密碼認證策略,三方接口接入的)

2.雙因子登錄:
在用戶請求登錄時,增加預校驗接口,先校驗是否需要雙因子認證,如果不需要,則直接加載密碼授權模式辦法token,如果需要,則先不能辦發token,再增加一個自定義的grant_type,來進行短信驗證碼的授權模式,并頒發token。

目標出發,再看oauth2.0的工作及實現原理

由于原來的實現是授權碼模式(authorization code),那我們來看他的工作流程及原理:
我們畫出他的時序圖:

集成三方登錄

從上述時序圖來看,這個需求,我們關鍵是關注下述這個地方:

他的密碼認證的核心邏輯在DaoAuthenticationProvider類的additionalAuthenticationChecks方法

接下來,我決定重寫該類的additionalAuthenticationChecks方法,這樣就能滿足我的想法,同時原來的代碼結構不用破壞,權限等的加載邏輯也都不用動。

我的具體實現方案

自定義重寫additionalAuthenticationChecks方法

基于策略模式實現不用認證方式的加載

加載自己的CustomLoginAuthProvider

SecurityConfigurer中加入自己的configure

tips: 這里有個小坑,mark一下,我還查了好就:

雙因子登錄

還是根據調用的時序圖來看:

關于授權類型 grant_type 的解析

1.每種 grant_type 都會有一個對應的 TokenGranter 實現類。
2.所有 TokenGranter 實現類都通過 CompositeTokenGranter 中的 tokenGranters 集合存起來。
3.然后通過判斷 grantType 參數來定位具體使用那個 TokenGranter 實現類來處理授權。

關于授權登錄邏輯

1.每種 授權方式 都會有一個對應的 AuthenticationProvider 實現類來實現。
2.所有 AuthenticationProvider 實現類都通過 ProviderManager 中的 providers 集合存起來。
3.TokenGranter 類會 new 一個 AuthenticationToken 實現類,如 UsernamePasswordAuthenticationToken 傳給 ProviderManager 類。
4.而 ProviderManager 則通過 AuthenticationToken 來判斷具體使用那個AuthenticationProvider 實現類來處理授權。
5.具體的登錄邏輯由 AuthenticationProvider 實現類來實現,如 DaoAuthenticationProvider。

基于以上我這里實現了單獨的SmsGranter

關鍵詞:

上一篇:大力神杯真的給冠軍保存四年嗎是真的嗎(大力神杯真的給冠軍保存四年嗎)
下一篇:最后一頁

熱點話題

熱點推薦

頭條

? 亚洲精品国产情侣av在线_91亚洲国产成人久久精品网站_亚洲AV无码专区电影在线观看_亚洲AV无码专区亚洲AV桃

              国产精品第一页第二页第三页| 最新欧美精品一区二区三区| 亚洲免费在线视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 精品国产制服丝袜高跟| 亚洲一区二区三区中文字幕在线| 国产酒店精品激情| 国产精品不卡一区| 制服丝袜成人动漫| 亚洲精品欧美综合四区| 国产成人精品亚洲777人妖| 日韩美女精品在线| 日韩一级黄色大片| 亚洲成人黄色影院| 久久久亚洲欧洲日产国码αv| 天天综合色天天| 国产欧美中文在线| 欧美一区二区三区成人| 亚洲婷婷在线视频| 国产传媒一区在线| 一级做a爱片久久| 久久夜色精品国产噜噜av | 欧美群妇大交群中文字幕| 中文字幕一区视频| 国产成人av福利| 亚洲国产乱码最新视频| 国产日韩av一区二区| 国产综合一区二区| 亚洲欧美视频在线观看| 精品国产一区久久| 麻豆精品视频在线| 综合久久给合久久狠狠狠97色| 日韩欧美卡一卡二| 奇米色一区二区| 中文字幕一区二区三区在线播放 | 国产一区二区三区黄视频| 亚洲欧洲成人自拍| 久久女同互慰一区二区三区| 久久精品免费看| 亚洲卡通动漫在线| 日本一区二区三区在线不卡 | 国产精品免费网站在线观看| 日韩欧美一二区| 蜜臀久久久99精品久久久久久| 国产精品成人免费| 久久久精品一品道一区| 国产精品一区二区三区99| 午夜私人影院久久久久| 亚洲丝袜美腿综合| 久久婷婷国产综合国色天香| 91精品一区二区三区在线观看| 日韩精品一二三区| 亚洲丝袜自拍清纯另类| 国产午夜精品久久久久久久| 国产成人精品亚洲午夜麻豆| 日本精品一级二级| 亚洲电影欧美电影有声小说| 国产精品麻豆网站| 久久精品这里都是精品| 懂色av一区二区三区免费看| 欧美性猛片aaaaaaa做受| 亚洲二区在线视频| 日韩久久一区二区| 国产精品麻豆99久久久久久| 91一区二区三区在线观看| 欧美一区永久视频免费观看| 日韩电影在线观看一区| 亚洲综合免费观看高清完整版| 国产精品护士白丝一区av| 久久综合久久鬼色中文字| 日韩免费高清av| 国产福利电影一区二区三区| 欧美性感一区二区三区| 日本中文字幕不卡| 亚洲国产日韩综合久久精品| 一区二区三区欧美日| 国产精品久久久久影院老司| 国产精品网站在线| 国产婷婷色一区二区三区四区 | 精品少妇一区二区三区视频免付费| 国产精品综合一区二区| 欧美三级一区二区| 久久99国产精品久久| 在线观看免费亚洲| 蜜桃传媒麻豆第一区在线观看| 午夜电影一区二区三区| 五月综合激情婷婷六月色窝| 亚洲一级二级在线| 亚洲成人午夜影院| 亚洲国产精品一区二区www在线| 亚洲图片欧美综合| 亚洲一区二区黄色| 午夜精品久久久久久久蜜桃app | 国产精品丝袜在线| 亚洲欧洲国产日本综合| 国产精品不卡视频| 亚洲精品国产成人久久av盗摄 | 国产天堂亚洲国产碰碰| 久久亚洲二区三区| 国产亚洲欧美激情| 国产人成亚洲第一网站在线播放| 国产精品入口麻豆原神| 国产精品免费av| 亚洲精品日韩一| 亚洲综合网站在线观看| 午夜精品久久久久| 色成年激情久久综合| 久久国产精品无码网站| 欧美日韩三级一区| 国产成人激情av| 精品国产三级电影在线观看| 91看片淫黄大片一级在线观看| 国产日韩欧美一区二区三区乱码 | 色哟哟在线观看一区二区三区| 美女免费视频一区二区| 8x8x8国产精品| va亚洲va日韩不卡在线观看| 久久久噜噜噜久久中文字幕色伊伊 | 国产在线一区二区综合免费视频| 7777精品伊人久久久大香线蕉完整版| 国产91精品精华液一区二区三区 | 精品奇米国产一区二区三区| www激情久久| 亚洲丝袜精品丝袜在线| 亚洲一区二区精品视频| 久久精品久久综合| 日韩一区二区三| 久久香蕉国产线看观看99| 亚洲色图欧美偷拍| 午夜伦欧美伦电影理论片| 国内精品第一页| 精品欧美乱码久久久久久1区2区| 久久久99精品免费观看不卡| 亚洲免费在线看| 色妞www精品视频| 国产99精品国产| 中文字幕精品一区二区三区精品| 亚洲欧美日韩在线| 免费人成精品欧美精品| 日韩欧美国产午夜精品| 亚洲国产高清aⅴ视频| 亚洲成人免费看| 欧美精品在线观看播放| 久久蜜桃av一区二区天堂| 亚洲精品成人在线| 欧美三级一区二区| 91麻豆国产在线观看| 亚洲一区视频在线观看视频| 欧美丝袜丝交足nylons图片| 99热精品国产| 亚洲精品欧美专区| 欧美日韩一区二区在线视频| 久久综合九色综合97婷婷| 一区二区三区久久| 欧美精品乱码久久久久久按摩| 久久久久综合网| 日日夜夜精品视频天天综合网| 日韩一级免费一区| 亚洲天堂2016| 国产一区二区久久| 国产精品高潮久久久久无| 色综合久久天天| 91蝌蚪porny九色| 午夜欧美电影在线观看| 日韩免费一区二区| 依依成人综合视频| 国产风韵犹存在线视精品| 亚洲欧美色一区| 欧美欧美欧美欧美| 国产精品国产自产拍在线| 激情六月婷婷久久| 中文字幕在线不卡视频| 欧美色图激情小说| 中文字幕乱码一区二区免费| 久久99精品久久只有精品| 欧美韩国日本不卡| 欧美亚洲自拍偷拍| 国产精品亲子伦对白| 精品一区二区三区av| 国产精品电影一区二区| 精品视频1区2区3区| 中文字幕一区二区三区不卡在线| 国产一区二区三区在线观看免费 | 国产精品一区二区三区99| 亚洲欧洲韩国日本视频 | 国产成人啪免费观看软件| 亚洲精品日韩一| 欧美成人猛片aaaaaaa| 亚洲一区二区成人在线观看| 99国产精品视频免费观看| 午夜免费久久看| 欧美高清在线一区二区| 欧美日韩一区久久| 亚洲欧美日韩综合aⅴ视频| 成人福利电影精品一区二区在线观看| 亚洲一区二区三区四区在线观看| 2024国产精品视频| 在线观看一区不卡| 亚洲视频网在线直播| 99精品在线观看视频|