Сессионный cookie не установлен на сервере - PullRequest
0 голосов
/ 10 октября 2019

Я изменил интерфейс формы входа OAuth2 для реализации бэкэнда. OAuth2Login настраивается с использованием весенней настройки безопасности. Все работало на локальной машине.

Но на сервере он больше не создает Session Cookie. Который, я думаю, создает следующее исключение:

org.springframework.security.oauth2.core.OAuth2AuthenticationException: [authorization_request_not_found] 
        at org.springframework.security.oauth2.client.web.OAuth2LoginAuthenticationFilter.attemptAuthentication(OAuth2LoginAuthenticationFilter.java:165) ~[spring-security-oauth2-client-5.1.2.RELEASE.jar!/:5.1.2.RELEASE]

1 Ответ

0 голосов
/ 11 октября 2019

Так что было не совсем точно, что сессионный cookie не был установлен. Я думаю, что выглядело это неправильно в Chrome, когда я искал это в производстве. Но файл cookie, казалось, был сброшен.

spring:
  security:
    oauth2:
      client:
        registration:
          google:
            redirectUri: https://<youurl>/login/oauth2/code/google

Когда я добавил это, он создал новую проблему:

org.springframework.security.oauth2.core.OAuth2AuthenticationException: [invalid_redirect_uri_parameter] 
        at org.springframework.security.oauth2.client.oidc.authentication.OidcAuthorizationCodeAuthenticationProvider.authenticate(OidcAuthorizationCodeAuthenticationProvider.java:132) ~[spring-security-oauth2-client-5.1.2.RELEASE.jar!/:5
.1.2.RELEASE]
        at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:175) ~[spring-security-core-5.1.6.RELEASE.jar!/:5.1.6.RELEASE]
        at org.springframework.security.oauth2.client.web.OAuth2LoginAuthenticationFilter.attemptAuthentication(OAuth2LoginAuthenticationFilter.java:186)

Это потому, что redirectUri - это HTTPS, но Google всегда возвращает HTTP. Я закончил тем, что добавил чтение Пост переполнения стека и добавил OncePerRequestFilter в свой проект. Так как это Google отправляет это по HTTP, они должны думать, что это безопасно. Не удалось найти способ заставить Google отправить его по HTTPS

...