У меня проблема при применении клиента 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
, чтобы я мог использовать Session или Cookie.