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

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

 

2、客户端ID、秘钥异常
这部分比较复杂,想要理解还是需要些基础的,解决这个异常的方案很多,陈某只是介绍其中一种,下面详细介绍。

 

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

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

 OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(四)-鸿蒙开发者社区
2、自定义AuthenticationEntryPoint

这个AuthenticationEntryPoint是不是很熟悉,前面的文章已经介绍过了,此处需要自定义来返回定制的提示信息。

创建OAuthServerAuthenticationEntryPoint,实现AuthenticationEntryPoint,重写其中的方法,代码如下:

 OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(四)-鸿蒙开发者社区
3、改造ClientCredentialsTokenEndpointFilter

ClientCredentialsTokenEndpointFilter这个过滤器的主要作用就是校验客户端的ID、秘钥,代码如下:

OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(四)-鸿蒙开发者社区

有几个重要的部分需要讲一下,如下:

  • 构造方法中需要传入第2步自定义的 OAuthServerAuthenticationEntryPoint
  • 重写 getAuthenticationManager() 方法返回IOC中的AuthenticationManager
  • 重写afterPropertiesSet() 方法,用于自定义认证失败、成功处理器,失败处理器中调用OAuthServerAuthenticationEntryPoint进行异常提示信息返回


4、OAuth配置文件中指定过滤器

只需要将自定义的过滤器添加到AuthorizationServerSecurityConfigurer中,代码如下:

 OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(四)-鸿蒙开发者社区
第①部分是添加过滤器,其中authenticationEntryPoint使用的是第2步自定义的OAuthServerAuthenticationEntryPoint

第②部分一定要注意:一定要去掉这行代码,具体原因源码解释。

“案例源码已经上传GitHub,关注公众号:码猿技术专栏,回复关键词:9529 获取!”

 

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

标签
已于2022-7-11 11:42:23修改
收藏
回复
举报
回复
    相关推荐