OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(二)

发布于 2022-7-11 11:42
浏览
0收藏

 

认证服务自定义异常信息
上面列举了三种常见的异常,解决方案实际可以分为两种:

  • 用户名,密码错误异常、授权类型异常
  • 客户端ID、秘钥异常


陈某这里针对这两种异常先上解决方案,后面再从源码解释为什么这么做?

 

1、用户名,密码错误异常、授权类型异常
针对用户名、密码、授权类型错误的异常解决方式比较复杂,需要定制的比较多。

 

1、定制提示信息、响应码

这部分根据自己业务需要定制,陈某这里只是给出个例子,代码如下:

 OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(二)-开源基础软件社区
2、自定义WebResponseExceptionTranslator

需要自定义一个异常翻译器,默认的是DefaultWebResponseExceptionTranslator,此处必须重写,其中有一个需要实现的方法,如下:

ResponseEntity<T> translate(Exception e) throws Exception;

这个方法就是根据传递过来的Exception判断不同的异常返回特定的信息,这里需要判断的异常的如下:

  • UnsupportedGrantTypeException:不支持的授权类型异常
  • InvalidGrantException:用户名或者密码错误的异常
    创建一个OAuthServerWebResponseExceptionTranslator实现WebResponseExceptionTranslator,代码如下:

 OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(二)-开源基础软件社区
3、认证服务配置文件中配置

需要将自定义的异常翻译器OAuthServerWebResponseExceptionTranslator在配置文件中配置,很简单,一行代码的事。

在AuthorizationServerConfig配置文件指定,代码如下:

 OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(二)-开源基础软件社区
“案例源码已经上传GitHub,关注公众号:码猿技术专栏,回复关键词:9529 获取!”


4、测试

按照上述的配置完成后,测试下用户名、密码错误、授权类型错误是否能够正确返回定制的提示信息,如下:

OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(二)-开源基础软件社区

 用户名、密码错误

OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(二)-开源基础软件社区
 授权类型不支持

 

文章转自公众号:码猿技术专栏

标签
已于2022-7-11 11:42:02修改
收藏
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐