我将OAuth2登录表单前端更改为后端实现。 OAuth2Login使用Spring安全性配置进行设置。 一切都在本地计算机上工作。
但是在服务器上,它不再创建会话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]
答案 0 :(得分:0)
因此,未设置会话cookie并不完全准确。我认为在生产过程中在镀铬中看错了。但是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
因此,我最后添加了一个阅读Stack Overflow post的内容,并为我的项目添加了OncePerRequestFilter
。由于是Google通过HTTP发送此消息,因此他们必须认为它是安全的。无法找到使Google通过HTTPS发送的任何方法