网易首页 > 网易号 > 正文 申请入驻

几行代码搞定 Spring Cloud OAuth2 授权码模式三个页面定制

0
分享至

作者:不才陈某

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个步骤即可轻松的实现异常页面自定义,效果如下:

来源: 码猿技术专栏

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
黑龙江省哈尔滨市道外区原区长井岗接受审查调查

黑龙江省哈尔滨市道外区原区长井岗接受审查调查

界面新闻
2026-05-30 10:03:13
奚梦瑶在法国补办婚礼,伴手礼尽显奢华,6岁儿子4岁女儿或当花童

奚梦瑶在法国补办婚礼,伴手礼尽显奢华,6岁儿子4岁女儿或当花童

素衣读史
2026-05-29 21:36:51
巴拿马总统摊牌:没收中国港口不是美国逼的,准备和中国续签协议

巴拿马总统摊牌:没收中国港口不是美国逼的,准备和中国续签协议

小俎娱乐
2026-05-31 03:05:10
哈弗茨欧冠决赛打入2球,自改制以来仅次于C罗和贝尔

哈弗茨欧冠决赛打入2球,自改制以来仅次于C罗和贝尔

懂球帝
2026-05-31 00:45:09
善恶有报!许家印刚认罪1天,子女近况曝光,大儿子的安排全白费

善恶有报!许家印刚认罪1天,子女近况曝光,大儿子的安排全白费

历史伟人录
2026-05-10 22:06:40
金融危机要来?专家预测,2026到2027上半年,世界将爆发金融风暴

金融危机要来?专家预测,2026到2027上半年,世界将爆发金融风暴

网络易不易
2026-05-30 11:15:15
罗马尼亚驱逐领事并关闭俄罗斯领事馆

罗马尼亚驱逐领事并关闭俄罗斯领事馆

一种观点
2026-05-29 21:03:39
文旅项目陷“倒闭潮”,花20亿打造的古城,游客不买账亏损超10亿

文旅项目陷“倒闭潮”,花20亿打造的古城,游客不买账亏损超10亿

怪味历史连连看
2026-05-30 23:15:16
结婚3年,吴千语首晒上海婚房,全程自己设计,老公负责拎包入住

结婚3年,吴千语首晒上海婚房,全程自己设计,老公负责拎包入住

椰黄娱乐
2026-05-30 11:07:49
三场战争把三个超级大国挑落马下,却向全世界展示了我国恐怖国力

三场战争把三个超级大国挑落马下,却向全世界展示了我国恐怖国力

农夫史记
2026-05-26 20:54:16
稻城亚丁省道收费今起暂停,景区想改掉省道属性,钱退不退还没说

稻城亚丁省道收费今起暂停,景区想改掉省道属性,钱退不退还没说

小鋭有话说
2026-05-30 23:37:53
我供小叔子考上北大,他毕业后只汇款不回家,我去北京一看愣住了

我供小叔子考上北大,他毕业后只汇款不回家,我去北京一看愣住了

千秋文化
2026-05-18 20:02:10
或许全世界都得感谢中国!若不是中国选择死战,特朗普不会妥协

或许全世界都得感谢中国!若不是中国选择死战,特朗普不会妥协

国际阿尝
2026-05-24 23:00:24
徐向前晚年回忆,中央红军的北上抗日方针,不是随心所欲就决定的

徐向前晚年回忆,中央红军的北上抗日方针,不是随心所欲就决定的

历史龙元阁
2026-05-28 10:15:15
我有个战友,退伍时赖在部队不走,看似丢人荒唐,翻盘整个人生

我有个战友,退伍时赖在部队不走,看似丢人荒唐,翻盘整个人生

千秋文化
2026-05-29 19:40:47
445美元MacBook Pro+Office永久套餐,我默默退掉了按月付的订阅

445美元MacBook Pro+Office永久套餐,我默默退掉了按月付的订阅

闪存猎手
2026-05-31 02:39:06
年度最佳动作片,《火遮眼》来了,谢苗终于要再次火了!

年度最佳动作片,《火遮眼》来了,谢苗终于要再次火了!

电和影
2026-05-29 20:44:37
男子飞机上大声呵斥2岁哭泣幼童,这不是维护秩序而是恃强凌弱

男子飞机上大声呵斥2岁哭泣幼童,这不是维护秩序而是恃强凌弱

极目新闻
2026-05-30 10:25:57
你们都是什么时候对男女之事开窍的?网友:果然还是拦不住有心人

你们都是什么时候对男女之事开窍的?网友:果然还是拦不住有心人

夜深爱杂谈
2026-02-21 21:37:02
大蒜再次被点名!医生发现:吃得越多,结肠癌患者病情或好转?

大蒜再次被点名!医生发现:吃得越多,结肠癌患者病情或好转?

橘子约定
2026-05-17 22:38:48
2026-05-31 05:15:00
Nodejs开发
Nodejs开发
分享只有程序员懂的干货
648文章数 823关注度
往期回顾 全部

科技要闻

车圈大佬发声:价格战远去,但竞争仍残酷

头条要闻

两名9岁女孩被困电梯近2小时 求救几十次物业无动于衷

头条要闻

两名9岁女孩被困电梯近2小时 求救几十次物业无动于衷

体育要闻

巴黎再度捧起欧冠奖杯 枪手众将黯然神伤

娱乐要闻

张碧晨《歌手》 “活人微死” 自嘲

财经要闻

双汇管不住一头猪

汽车要闻

900V+3.2秒破百 领克10+&领克10上市16.99万元起

态度原创

旅游
家居
亲子
艺术
手机

旅游要闻

伊利亮相2026“跟着品牌去旅行”对接交流活动 以工业文旅融合彰显中国品牌力量

家居要闻

云栖 舒展如流云

亲子要闻

来一次说走就走,开启宝宝人生首次远行,去见不一样的风景

艺术要闻

非洲超级地标!全球最大足球场,持续推进!

手机要闻

REDMI K90至尊版入网?K90单品激活破200万

无障碍浏览 进入关怀版