回复
OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!(四)
love374
发布于 2022-7-11 11:42
浏览
0收藏
2、客户端ID、秘钥异常
这部分比较复杂,想要理解还是需要些基础的,解决这个异常的方案很多,陈某只是介绍其中一种,下面详细介绍。
1、定制提示信息、响应码
这部分根据自己业务需要定制,陈某这里只是给出个例子,代码如下:
2、自定义AuthenticationEntryPoint
这个AuthenticationEntryPoint是不是很熟悉,前面的文章已经介绍过了,此处需要自定义来返回定制的提示信息。
创建OAuthServerAuthenticationEntryPoint,实现AuthenticationEntryPoint,重写其中的方法,代码如下:
3、改造ClientCredentialsTokenEndpointFilter
ClientCredentialsTokenEndpointFilter这个过滤器的主要作用就是校验客户端的ID、秘钥,代码如下:
有几个重要的部分需要讲一下,如下:
- 构造方法中需要传入第2步自定义的 OAuthServerAuthenticationEntryPoint
- 重写 getAuthenticationManager() 方法返回IOC中的AuthenticationManager
- 重写afterPropertiesSet() 方法,用于自定义认证失败、成功处理器,失败处理器中调用OAuthServerAuthenticationEntryPoint进行异常提示信息返回
4、OAuth配置文件中指定过滤器
只需要将自定义的过滤器添加到AuthorizationServerSecurityConfigurer中,代码如下:
第①部分是添加过滤器,其中authenticationEntryPoint使用的是第2步自定义的OAuthServerAuthenticationEntryPoint
第②部分一定要注意:一定要去掉这行代码,具体原因源码解释。
“案例源码已经上传GitHub,关注公众号:码猿技术专栏,回复关键词:9529 获取!”
文章转自公众号:码猿技术专栏
标签
已于2022-7-11 11:42:23修改
赞
收藏
回复
相关推荐