成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

幾行代碼搞定 Spring Cloud OAuth2 授權碼模式三個頁面定制

開發 前端
Spring Security OAuth2的授權碼模式一直是個難點,如果你對底層的原理不太理解的話很難去定位到其中的問題。

圖片

Spring Security OAuth2的授權碼模式一直是個難點,如果你對底層的原理不太理解的話很難去定位到其中的問題。

今天這篇文章就針對這位朋友提出的問題做個解答,分為如下三個部分:

  • 授權碼模式的登錄頁面重定制
  • 授權碼模式的授權頁面重定制
  • 授權碼模式的異常頁面重定制

授權碼模式的登錄頁面重定制

下面展示一下默認的登錄頁面什么熊樣,如下圖:

圖片

是不是有點丑?實際開發中肯定是要根據自己的系統定制這個登錄頁面。

問題來了:如何定制?

分為如下幾步:

1. 定制頁面

陳某隨便找了一個前端頁面oauth-login.html,代碼如下:

圖片

使用thymeleaf進行渲染。

2. 定義接口跳轉

需要在OAuth2的授權服務中定義一個接口跳轉到定制的頁面,接口如下:

@ApiOperation(value = "表單登錄跳轉頁面")
@GetMapping("/oauth/login")
public String loginPage(Model model){
//返回跳轉頁面
return "oauth-login";
}

3. Spring Security 中配置

只需要在Spring Security 的表單登錄中定義一下跳轉的接口即可,代碼如下:

圖片

代碼解釋如下:

  • loginProcessingUrl:這個是定義的form表單提交的url。
  • .loginPage:這個是定義跳轉登錄頁面的url。

按照上述三個步驟輕松實現了自定義登錄頁面,效果如下:

圖片

授權碼模式的授權頁面重定制

下面展示一下默認的授權頁面什么熊樣,如下圖:

圖片

那么如何自定義呢?這個自定義就相對麻煩了,需要對Spring Security 底層原理有一定的了解。

1. 定制頁面

陳某隨便找了一個頁面oauth-grant.html,代碼如下:

圖片

2. 定義接口跳轉

授權頁面的跳轉接口url:/oauth/confirm_access,這個接口定義在org.springframework.security.oauth2.provider.endpoint.WhitelabelApprovalEndpoint中,如下:

圖片

自定義也很簡單,只需要模仿這個接口自定義一個將其覆蓋即可,實現如下:

圖片

注意:@SessionAttributes("authorizationRequest")這個注解一定要標注,授權請求信息是存儲在session中。

3. 修改默認的映射地址

由于默認的跳轉接口是:/oauth/confirm_access,陳某剛好定義的接口也是/oauth/confirm_access,因此這第3步不用配置也能生效。

注意:如果你的跳轉接口不是/oauth/confirm_access,那么需要按照這個步驟配置。

修改也很簡單,只需要在OAuth2的認證服務的配置類:繼承AuthorizationServerConfigurerAdapter的配置中修改一下配置,代碼如下:

圖片

按照上述3個步驟即可輕松的實現授權頁面自定義,效果如下:

圖片

授權碼模式的異常頁面重定制

這個異常頁面什么意思呢?授權碼的請求url如下:

http://localhost:9001/blog-auth-server/oauth/authorize?client_id=mugu&response_type=code&scope=all&redirect_uri=http://www.baidu.com

假設我將的租戶id(client_id)修改成數據庫中不存在的值,那么將會觸犯異常頁面,頁面如下:

圖片

這個異常頁面是不是不太符合系統的要求,肯定是要自定義的。

1. 定制頁面

陳某前端能力有限,沒找到現成的,自己隨便寫了一個oauth-error.html,代碼如下:

圖片

2. 定義接口跳轉

這個跳轉的接口的邏輯在AuthorizationEndpoint中,如下:

圖片

因此只需要重新定義一個接口進行跳轉即可,如下:

@ApiOperation(value = "處理授權異常的跳轉頁面")
@GetMapping("/oauth/error")
public String error(Model model){
return "oauth-error";
}

3. 修改默認的映射地址

默認的映射地址為/oauth/error,陳某自定義的也是這個,因此第3步可以省略。

注意:如果你定義的接口不是/oauth/error則需要配置。

”修改也很簡單,只需要在OAuth2的認證服務的配置類:繼承AuthorizationServerConfigurerAdapter的配置中修改一下配置,代碼如下:

圖片

按照上述3個步驟即可輕松的實現異常頁面自定義,效果如下:

圖片

責任編輯:武曉燕 來源: 碼猿技術專欄
相關推薦

2022-04-11 07:34:46

OAuth2UAA節點

2021-11-15 13:58:00

服務器配置授權

2025-06-26 04:11:00

SpringSecurityOAuth2

2025-01-13 08:04:24

2022-02-15 07:35:12

服務器KeycloakOAuth2

2025-04-29 09:07:21

2022-06-20 08:37:28

接口tokenAO

2025-04-01 05:00:00

OAuth2服務器身份驗證

2022-05-13 15:15:18

服務器OAuth2控制臺

2020-11-12 09:55:02

OAuth2

2013-05-02 14:13:44

Android開發OAuth2服務認證

2022-11-16 14:02:44

2011-05-10 16:27:55

網站優化SEO

2023-08-29 08:00:38

2017-08-04 18:10:09

2023-08-31 08:34:07

Users對象序列化

2009-07-03 17:01:30

JSP2JSP

2012-11-07 10:09:11

組件技術OAuth授權登陸

2021-09-08 11:02:32

Java代碼圖片

2021-08-02 12:50:45

sessiontokenJava
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久999国产精品 中文字幕在线精品 | 久久九精品 | 日韩成人免费视频 | 国产午夜精品一区二区三区四区 | 国产精品明星裸体写真集 | 日本手机在线 | 久久免费看 | 蜜桃在线视频 | 午夜欧美| 中文字幕在线观看国产 | 亚洲欧洲精品一区 | 男女视频在线免费观看 | 精品一二区 | 国产成人一区二区三区久久久 | 日本不卡高字幕在线2019 | 国产精品一区二区不卡 | 九九热国产视频 | 伊人网综合在线观看 | 天天操操操操操 | 日韩www| 欧美日韩一区二区在线观看 | 狠狠操在线 | 精品视频在线播放 | 成人午夜免费福利视频 | 日本精品国产 | 精品久久电影 | 成人片免费看 | 亚洲啊v在线| 在线一区视频 | 青青久草 | 欧美乱操 | 日本中文字幕一区 | 国产你懂的在线观看 | 国产91色在线 | 亚洲 | 99热碰| 亚洲成人高清 | 91精品国产色综合久久 | 羞羞色在线观看 | xxxxx黄色片 欧美一区免费 | 日韩中文字幕av | 欧美日韩国产综合在线 |