日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
幾行代碼搞定SpringCloudOAuth2授權(quán)碼模式三個頁面定制

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

耿馬ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

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

  • 授權(quán)碼模式的登錄頁面重定制
  • 授權(quán)碼模式的授權(quán)頁面重定制
  • 授權(quán)碼模式的異常頁面重定制

授權(quán)碼模式的登錄頁面重定制

下面展示一下默認(rèn)的登錄頁面什么熊樣,如下圖:

是不是有點丑?實際開發(fā)中肯定是要根據(jù)自己的系統(tǒng)定制這個登錄頁面。

問題來了:如何定制?

分為如下幾步:

1. 定制頁面

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

使用thymeleaf進(jìn)行渲染。

2. 定義接口跳轉(zhuǎn)

需要在OAuth2的授權(quán)服務(wù)中定義一個接口跳轉(zhuǎn)到定制的頁面,接口如下:

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

3. Spring Security 中配置

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

代碼解釋如下:

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

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

授權(quán)碼模式的授權(quán)頁面重定制

下面展示一下默認(rèn)的授權(quán)頁面什么熊樣,如下圖:

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

1. 定制頁面

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

2. 定義接口跳轉(zhuǎn)

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

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

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

3. 修改默認(rèn)的映射地址

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

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

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

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

授權(quán)碼模式的異常頁面重定制

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

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

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

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

1. 定制頁面

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

2. 定義接口跳轉(zhuǎn)

這個跳轉(zhuǎn)的接口的邏輯在AuthorizationEndpoint中,如下:

因此只需要重新定義一個接口進(jìn)行跳轉(zhuǎn)即可,如下:

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

3. 修改默認(rèn)的映射地址

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

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

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

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


文章題目:幾行代碼搞定SpringCloudOAuth2授權(quán)碼模式三個頁面定制
轉(zhuǎn)載來源:http://www.5511xx.com/article/cdiojso.html