日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义Spring Authorization Server登录页

發布時間:2025/5/22 编程问答 24 如意码农
生活随笔 收集整理的這篇文章主要介紹了 自定义Spring Authorization Server登录页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、鳴謝

首先要聲明一些感謝:

  1. 感謝官方文檔的缺失、反復造成我下面這條感謝
  2. 感謝那些胡說八道、顧彼失此的某DN文章,讓我在沖向坑里的道路上一往無前

廢話不多說,看劍!

本文來自:博客園-去哪里吃魚-自定義Spring Authorization Server登錄頁

二、版本信息

本文基于如下以來版本信息,官方代碼如有變動,請自行閱讀源碼解決問題。

友情提示:不要照抄某DN、AI內容,避免浪費生命。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-authorization-server</artifactId>
<version>3.3.10</version>
</dependency> <!-- 上面的依賴引用的 spring-security-oauth2-authorization-server 版本,這里只做提示,不用引入 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-authorization-server</artifactId>
<version>1.3.5</version>
</dependency>

三、過濾器鏈介紹

使用 Spring Authorization Server 開發授權服務器,必然不可少要配置兩個 SecurityFilterChain過濾器鏈:

  • SpringSecurity的過濾器鏈
  • 授權服務的過濾器鏈

這兩條過濾器鏈不會沖突,但是要確保授權服務器的過濾器鏈在SpringSecurity鏈之前加載,在代碼當中可以使用@Order(0)注解來調整,注解中的整數參數越小,加載順序就越靠前

調整的目的是:

SpringSecurity的過濾器鏈默認所有請求都需要認證,把授權服務的過濾器鏈提前,可以避免如下默認授權相關請求不受SpringSecurity的過濾器鏈影響

  • /oauth2/authorize
  • /oauth2/token
  • /oauth2/jwks
  • /userinfo
  • /login
  • ...

如下基于 授權碼 模式進行開發,默認的,以 GET 方式請求的 /login 是跳轉到登錄頁,以 POST 方式請求的 /login 則是處理登錄請求,Spring 官方以硬編碼的形式提供了一個默認登錄頁,其中引用了bootstrap 樣式文件,鑒于一些總所周知的原因,這個樣式文件訪問不了,所以登錄頁加載會很慢。

此外,每個產品也會相應的設計具有自己產品風格特性的登錄頁,這讓自定義登錄頁成為了一個硬性需求。

如下為 只修改登錄頁 的處理過程,一些項目配置如下

  • 應用 context-path 自定義為 'auth'
  • 自定義登錄頁請求地址為: http://domain/auth/i/login

四、修改 SpringSecurity 配置

貼一段基于官方demo的修改后的配置代碼:

@Bean
@Order(2)
public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http)
throws Exception {
http
.authorizeHttpRequests((authorize) -> authorize
.requestMatchers("/i/**","/login**").permitAll()
.anyRequest().authenticated()
)
.cors(AbstractHttpConfigurer::disable)
.csrf(AbstractHttpConfigurer::disable)
.formLogin(form -> form.loginPage("/i/login").loginProcessingUrl("/login"));
return http.build();
}

現在來說一下注意事項:

  1. 登錄頁請求由SpringSecurity的過濾器鏈處理,因為授權服務過濾器鏈沒有設置 formLogin,它只處理相關接口
  2. 在配置 formLogin 的時候,loginPageloginProcessingUrl 都需要配置,如果不配置 loginProcessingUrl,它則會用 loginPage 的 url來處理登錄請求
  3. 除了登錄頁請求放開,登錄請求也要放開,交由授權服務過濾器鏈處理,在代碼中就是 requestMatchers("/i/**","/login**").permitAll()

五、修改 Spring Authorization Server 配置

同樣基于官方demo的修改后的配置:

@Bean
@Order(1)
public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception {
OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http);
http.getConfigurer(OAuth2AuthorizationServerConfigurer.class).oidc(withDefaults());
http.exceptionHandling((exceptions) -> exceptions
.defaultAuthenticationEntryPointFor(
new LoginUrlAuthenticationEntryPoint(domain + "/auth/i/login"),
new MediaTypeRequestMatcher(MediaType.TEXT_HTML)
)
)
.oauth2ResourceServer((resourceServer) -> resourceServer.jwt(Customizer.withDefaults()));
return http.build();
}

注意事項之在代碼 new LoginUrlAuthenticationEntryPoint(domain + "/auth/i/login")

  1. domain 變量僅在有需要的情況下使用,也可以不用
  2. 構造函數中的地址,一定一定要與上一章節中的 loginPage 地址相同,不要被 xxxEntryPoint 迷惑,這里就是指登錄頁地址!

六、其他

自定義授權確認頁面不在此篇幅范圍之內,這個版本當客戶端請求的 role 是一個值的時候不會出現授權確認頁面。

我解決這種自定義問題的思路:

研究 Spring Security 的配置方式,如:SecurityBuilder,SecurityConfiger,從而找到自己出現問題所在的步驟,針對性的去調整

看到這里,希望對你有所幫助。

總結

以上是生活随笔為你收集整理的自定义Spring Authorization Server登录页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 视频成人免费 | av电影免费在线播放 | 波多野结衣一二区 | 丰满熟女人妻一区二区三区 | 国产乱人乱精一区二视频国产精品 | 成人激情在线视频 | 超碰公开免费 | 在线色导航| 国产视频三级 | 在线视频福利 | 香蕉久久久久久久av网站 | 最新天堂中文在线 | 亚洲美女视频网站 | 囯产精品一品二区三区 | 亚洲色图14p | 美女性生活视频 | 久久久成人免费视频 | 日韩网站在线播放 | 女人的天堂av | 免费观看一级一片 | 致命魔术电影高清在线观看 | 羞羞色视频 | 国产中文字幕91 | 朝桐光在线视频 | 国产成人av网站 | 白丝美女被草 | av青青草 | 国产精品久久久久久 | 一级淫片在线观看 | 香蕉一级视频 | 久久久毛片 | 国产精品一区二区三区高潮 | 蜜桃av在线 | 伊人久久久久噜噜噜亚洲熟女综合 | 久久婷婷色综合 | 中文字幕在线日韩 | 一级黄色在线播放 | 亚洲视频一区二区在线观看 | 亚洲成a人片77777精品 | 草草色| 一级黄色短片 | 艳妇臀荡乳欲伦交换在线播放 | 美女自拍偷拍 | 欧美体内she精高潮 日韩一区免费 | 狠狠久| 内射干少妇亚洲69xxx | 偷自在线 | 天堂а√在线最新版中文在线 | 国产东北露脸精品视频 | 精品久久久久一区 | 亚洲综合小说网 | www.777色 | 日本黄色不卡视频 | 国产美女在线观看 | 欧美裸体女人 | 久久99精品久久久久婷婷 | 日日操操 | 午夜家庭影院 | 2021中文字幕 | 成年人黄国产 | 自拍偷拍国产 | 国产激情无码一区二区 | 日韩婷婷 | 精品96久久久久久中文字幕无 | 第一章豪妇荡乳黄淑珍 | 黄色大片av | wwwxxx日本免费 | 久久久久久久久久久国产精品 | 女生的胸无遮挡 | 福利国产在线 | 成年人视频在线 | 国产熟女一区二区三区四区 | 欧美乱淫 | 欧美成人午夜影院 | 日韩精品91| 国产高清免费观看 | 国产精品入口久久 | 嫩草在线观看 | 天堂av2020| 免费黄色欧美 | 成人一区视频 | 国产中文字幕在线播放 | 婷婷色亚洲 | 亚洲综合激情网 | 免费看a的网站 | 无码国产精品一区二区高潮 | 黄色污网站在线观看 | 欧美深夜在线 | 欧美特级毛片 | 久久丫精品忘忧草西安产品 | 日韩亚洲视频在线观看 | 夏晴子在线 | 免费污片在线观看 | 在线看一区二区 | 一边摸一边抽搐一进一出视频 | 国产精品国产三级国产aⅴ原创 | 日韩精品一区二区三区在线 | 久久久久9999 | 午夜丰满寂寞少妇精品 |