gpt4 book ai didi

spring - 为什么spring security oauth2客户端需要AuthorizationRequestRepository?

转载 作者:行者123 更新时间:2023-12-03 21:02:27 24 4
gpt4 key购买 nike

我在应用 spring oauth2 客户端时遇到问题。

我发现 org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter想要创建一个 OAuth2AuthorizationRequest并通过 authorizationRequestRepository 临时存储.

相关代码:

// OAuth2AuthorizationRequestRedirectFilter.class
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) {
OAuth2AuthorizationRequest authorizationRequest = this.authorizationRequestResolver.resolve(request);
...
this.sendRedirectForAuthorization(request, response, authorizationRequest);
....
}

private void sendRedirectForAuthorization(HttpServletRequest request, HttpServletResponse response,
OAuth2AuthorizationRequest authorizationRequest) {
...
this.authorizationRequestRepository.saveAuthorizationRequest(authorizationRequest, request, response);
...

}

文档中指出,默认实现是将其存储在 HttpSession 中,如果需要,可以将其存储在 cookie 中。

相关文档: https://docs.spring.io/spring-security/site/docs/5.0.7.RELEASE/reference/html/oauth2login-advanced.html#oauth2login-advanced-authorization-request-repository

问题)

但是我不理解。为什么不应该 authorizationRequest对象存储在内存中?
不知道为什么spring security提供了 AuthorizationRequestRepository接口(interface),所以我可以使用 Session 或 Cookie。

最佳答案

您希望将其存储以供将来的请求使用,因为您不想对每个请求执行 OAuth 流。

关于spring - 为什么spring security oauth2客户端需要AuthorizationRequestRepository?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56413165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com