问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

spring security oauth2 认证端异常处理(基于前后分离统一返回json)

发布网友 发布时间:2023-01-06 14:50

我来回答

1个回答

热心网友 时间:2023-07-17 13:21

在默认的情况下,spring security oauth2 在发生异常情况下,返回的格式并不符合现实需要,其格式是:

我们一般需要是这种格式

对于oauth2的异常,其类主要是 OAuth2Exception ,默认处理这些异常的是DefaultWebResponseExceptionTranslator,其错误主要是包含oauth2相关的错误,就类似以下的。

DefaultWebResponseExceptionTranslator处理的OAuth2Exception,其类可见的序列化器如下,可以得出默认的返回格式:

所以我们需要重新定义自己的WebResponseExceptionTranslator,以及自己的oauth2异常以及其序列化器(也可以不定义,重写handleOauth2Exception即可)

自定义oauth2异常处理类,CustomWebResponseExceptionTranslator,模仿DefaultWebResponseExceptionTranslator即可,下面给出关键部分,注意result是自己定义返回格式的bean,含有msg和code。最后在认证服务器配置一下就可。

这里说的是oauth2的异常处理,其中还有认证的异常,我们这里使用basic的认证方式,如果发生异常,是不会走这个自定义的异常处理器的,所以在securityConfig中配置,在httpBasic后面配置的那里处理了。

这里加上 http.addFilterBefore(customBasicAuthenticationFilter, BasicAuthenticationFilter.class);

这个filter其实就是验证一些必要参数有无缺失,并且返回自定义的格式,

还有需要注意是:因为是授权码模式,在获取token的时候,需要传clientId和clientSecret,这是获取token的验证我们需要先于一步再到后面,所以我们会定义个过滤器处理,因为在测试过程,如果不先于验证clientId和clientSecret,返回的错误可能不是预期之中的,这里还不清楚为啥会出现那些特殊情况,所以还是先于一步先校验了、

认证服务器配置上自定义的filter,这个filter会先执行再到后面/oauth2/token链接,还有这里不开启allowFormAuthenticationForClients,还是只限于basic,如果开启了,有可能返回不正确的异常格式,具体原因不明,但后续肯定是不走basicFilter的,自定义的filter还是验证参数完整性和认证clientId和clientSecret身份是否正确。

例示参考:
https://blog.csdn.net/qq_31063463/article/details/83752459
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么起点中文网上传小说怎么也分不了段?ji 我在手机起点网写小说,请问大家怎样换行? “千古兴亡泰伯国”的出处是哪里 ...登京口北固亭有怀古》原文赏析及翻译(千古兴亡多少事) “千古兴亡一梦惊”的出处是哪里 千古兴亡多少事的翻译是什么 《千古兴亡多少事,悠悠。不尽长江滚滚流。 (宋·辛弃》古诗原文及翻译... 办理蚂蚁宝卡后可以转换成使用原联通号码 蚂蚁宝卡可以变更成其他4G套餐吗 状态空间模型状态空间模型的建立和预测的步骤 SpringCloud-feign客户端统一处理下游服务自定义异常(1.5.x版本下可以) Spring Boot中Controller的统一异常处理 一个石字旁一个西字 招商信用卡几天算逾期? 左边一个石, 右边一个西读什么? 研究生毕业,可以去中小学应聘老师吗? 埃安y蓄电池型号 为什么要用多层摄像头玻璃层数 单效空调滤清器和双效滤清器什么区别 新买的英特尔笔记本怎么没有序列号 小孩可以吃柿饼不 小孩能吃柿饼吗 小孩子可以吃柿子饼吗? 梦见一大袋煮熟的虾 邮政储蓄卡转农村信用社手续费是多少 净化的反义词_净化的近义词_净化的词语解释 在微博怎么买tf正版周边的 正品防调包标签怎么拆不坏 aj正品防调包拆下不退换 中级会计教材2023年有几本? 梦见吃东西咬碎牙齿 梦见吃东西牙齿就碎掉满嘴鲜血 梦见牙齿一咬就碎 梦见把牙齿嚼碎 81年的农历3月一号是阳历的多少号什么星座 cmd能查pin密码 cmd怎么查看摄像机密码 硝化菌液怎么用 梦见我在外面蹲在地上小便 梦见自己随便在地上小便 梦见蹲下尿流 第一次见家长,男朋友的妈妈给红包,里面258块!这有什么意头吗? 小三太猖狂主动加我微信,说要见面说!我该怎么对付他 民间除小三的方法(怎样用合法的方法惩治小三) 去汕头旅游哪些景点值得去 铮铮铁骨什么意思?出处是哪里? sb260二极管可以用her204代替吗 SR260能用ST3100代换吗 丝瓜成熟时间丝瓜什么时候成熟 为什么丝瓜的雌花还未开花就有个子房的啊,是不是等它开了后还要给它授粉子房才能发育成丝瓜啊