<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          久等|全面擁抱Spring全新OAuth解決方案

          共 2147字,需瀏覽 5分鐘

           ·

          2022-06-10 08:46


          PIG 微服務(wù)開(kāi)發(fā)平臺(tái)?v3.5 發(fā)布,正式支持?Spring Authorization Server?

          以下全文 Spring Authorization Server 簡(jiǎn)稱(chēng)為: SAS?

          本文以PIG 微服務(wù)[1]開(kāi)發(fā)平臺(tái)為演示,適用于 Spring Security OAuth 2.3 <-> 2.5 的認(rèn)證中心遷移

          背景

          • Spring 團(tuán)隊(duì)正式宣布 Spring Security OAuth 停止維護(hù),該項(xiàng)目將不會(huì)再進(jìn)行任何的迭代
          • 目前 Spring 生態(tài)中的 OAuth2 授權(quán)服務(wù)器是 Spring Authorization Server 已經(jīng)可以正式生產(chǎn)使用
          • 作為 SpringBoot 3.0 的過(guò)渡版本 SpringBoot 2.7.0 過(guò)期了大量關(guān)于 SpringSecurity 的配置類(lèi),如沿用舊版本過(guò)期配置無(wú)法向上升級(jí)。

          遷移過(guò)程

          ① Java 1.8 支持

          目前最新的 SAS 0.3 基于 Java 11 構(gòu)建,低版本 Java 無(wú)法使用

          經(jīng)過(guò)和 Spring Security 官方團(tuán)隊(duì)的溝通 0.3.1 將繼續(xù)兼容 Java 1.8

          我們聯(lián)合 springboot 中文社區(qū)編譯了適配 java 1.8 的版本坐標(biāo)如下

          ??<dependency>
          ??????<groupId>io.springboot.securitygroupId>
          ??????<artifactId>spring-security-oauth2-authorization-serverartifactId>
          ??????<version>0.3.0version>
          ??dependency>

          ② 授權(quán)模式擴(kuò)展

          • 擴(kuò)展支持密碼模式,SAS 基于 oauth 2.1 協(xié)議不支持密碼模式

          • 擴(kuò)展支持短信登錄

          ③ Redis 令牌存儲(chǔ)

          支持Redis存儲(chǔ) 令牌
          • 官方目前沒(méi)有提供基于 Redis 令牌持久化方案

          • PIG 擴(kuò)展 PigRedisOAuth2AuthorizationService 支持

          ④ Token 輸出格式化

          • 使用自省令牌的情況下 默認(rèn)實(shí)現(xiàn)為
          ku4R4n7YD1f584KXj4k_3GP9o-HbdY-PDIIh-twPVJTmvHa5mLIoifaNhbBvFNBbse6_wAMcRoOWuVs9qeBWpxQ5zIFrF1A4g1Q7LhVAfH1vo9Uc7WL3SP3u82j0XU5x
          默認(rèn)實(shí)現(xiàn)
          • 為方便結(jié)合 redis 高效檢索 token ,結(jié)合 RDM 分組也可以更方便的圖形化觀察
          統(tǒng)一前綴::令牌類(lèi)型::客戶(hù)端ID::用戶(hù)名::uuid
          @Bean
          public?OAuth2TokenGenerator?oAuth2TokenGenerator()?{
          ??CustomeOAuth2AccessTokenGenerator?accessTokenGenerator?=?new?CustomeOAuth2AccessTokenGenerator();
          ??//?注入Token?增加關(guān)聯(lián)用戶(hù)信息
          ??accessTokenGenerator.setAccessTokenCustomizer(new?CustomeOAuth2TokenCustomizer());
          ??return?new?DelegatingOAuth2TokenGenerator(accessTokenGenerator,?new?OAuth2RefreshTokenGenerator());
          }

          ⑤ Token 輸出增強(qiáng)

          • 使用自省令牌,默認(rèn)情況下輸出的 Token 格式
          {
          ????"access_token":?"xx",
          ????"refresh_token":?"xx",
          ????"scope":?"server",
          ????"token_type":?"Bearer",
          ????"expires_in":?43199
          }
          • Token 增強(qiáng)輸出關(guān)聯(lián)用戶(hù)信息
          {
          ????"sub":?"admin",
          ????"clientId":?"test",
          ????"access_token":?"xx",
          ????"refresh_token":?"xx",
          ????"license":?"https://pig4cloud.com",
          ????"user_info":?{
          ????????"username":?"admin",
          ????????"accountNonExpired":?true,
          ????????"accountNonLocked":?true,
          ????????"credentialsNonExpired":?true,
          ????????"enabled":?true,
          ????????"id":?1,
          ????????"deptId":?1,
          ????????"phone":?"17034642999",
          ????????"name":?"admin",
          ????????"attributes":?{}
          ????}
          }

          ⑥ 授權(quán)碼模式個(gè)性化

          注入自定義confirm

          基于授權(quán)碼的開(kāi)發(fā)平臺(tái)

          ⑦ 資源服務(wù)器

          • 自省方案擴(kuò)展支持資源資源服務(wù)器本地查詢(xún)
          默認(rèn)的資源服務(wù)器自省模式
          • 擴(kuò)展資源服務(wù)器本地自省
          擴(kuò)展資源服務(wù)器本地自省

          - 優(yōu)勢(shì):1. 用戶(hù)狀態(tài)實(shí)時(shí)更新 2. 減少網(wǎng)絡(luò)調(diào)用提升性能

          參考資料

          [1]

          PIG 微服務(wù): https://github.com/pig-mesh/pig



          瀏覽 84
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产乱子伦| 豆花无码成人无码视频 | 啪视频网站国产馆 | 国产美女丝袜足交视频 | 狠狠躁日日躁 |