|
|
满身肌肉的眼镜 · ABAP 删除内表_abap ...· 1 年前 · |
|
|
深沉的烈马 · 在selenium中使用JQuery_sel ...· 1 年前 · |
|
|
不拘小节的米饭 · 使用 PayPal | Microsoft ...· 1 年前 · |
|
|
强健的硬币 · golang soap wsdl-掘金· 2 年前 · |
|
|
听话的机器猫 · webpack4.x安装配置一 - ...· 2 年前 · |
|
|
严肃的柚子
2 年前 |
看看 文档 ,我发现的唯一建议是
DefaultOAuth2AuthorizedClientManager设计为在HttpServletRequest上下文中使用。当在AuthorizedClientServiceOAuth2AuthorizedClientManager上下文之外操作时,请使用HttpServletRequest。
我可以使用servlet请求范围外的
WebClient
来测试挂起的
DefaultOAuth2AuthorizedClientManager
调用,但是,如果我在servlet请求的上下文中使用
AuthorizedClientServiceOAuth2AuthorizedClientManager
,就不会发生什么奇怪的事情。那他们俩有什么区别?
正如您从文档中注意到的,主要的区别在于它们将在何处使用。从外部来看,这一点可能不太明显,但在框架内部则更为明显。但是,解释它们为何不同的一个更简单的方法可能是查看它们封装的内容。
DefaultOAuth2AuthorizedClientManager
使用
OAuth2AuthorizedClientRepository
loadAuthorizedClient(String clientRegistrationId, Authentication principal, HttpServletRequest request)
的方法签名。
AuthorizedClientServiceOAuth2AuthorizedClientManager
使用
OAuth2AuthorizedClientService
loadAuthorizedClient(String clientRegistrationId, String principalName)
的方法签名。
因此,我猜
DefaultOAuth2AuthorizedClientManager
是“基于请求的”,而
AuthorizedClientServiceOAuth2AuthorizedClientManager
是“基于服务的”,这实际上意味着其他的一切。
API文档在这里会很有帮助:
更新:
将请求作为参数的附加值是什么?
作为接口,声明
loadAuthorizedClient
方法接受请求作为参数意味着任何未来的实现都可以使用该请求来影响其决策。默认实现(
DefaultOAuth2AuthorizedClientManager
)会这样做,因为
HttpSessionOAuth2AuthorizedClientRepository
利用请求访问会话。
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券
|
|
强健的硬币 · golang soap wsdl-掘金 2 年前 |