Зачем пружинной безопасности oauth2 клиенту нужен AuthorizationRequestRepository? - PullRequest
0 голосов
/ 02 июня 2019

У меня проблема при применении клиента 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...