Spring Oauth2 客户端与 Google 提供商不断要求身份验证
Spring Oauth2 client with Google provider keep asking for authentication
我已经创建了一个 Spring Oidc 客户端应用程序。我配置了一个 oauth2 客户端,如下所示:
spring:
security:
oauth2:
client:
registration:
google:
client-id: my_client_id
client-secret: my_secret
clientName: myapp
redirectUri: 'http://localhost:8081/wellcome'
WebSecurityConfigurerAdapter
....
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.oauth2Login();
}
redirect url 配置在 http://localhost:8081/wellcome
在我初始化身份验证后,客户端被重定向到google身份验证页面,它不断要求身份验证。
如果我保留默认重定向 url,(即 ../oauth2/code/google),应用程序工作正常。
如果我配置不同的重定向,为什么重定向无法正常工作 url?
默认的重定向 URI 是 /login/oauth2/callback/{registrationId}
。
重定向到 /login/oauth2/callback/{registrationId}
时,OAuth2LoginAuthenticationFilter
将处理请求,尝试对用户进行身份验证并创建 OAuth2AuthenticationToken
。
通过更改重定向 URI,不会调用 OAuth2LoginAuthenticationFilter
并且应用程序不知道用户是否已通过身份验证,这就是它提示他们再次进行身份验证的原因。
您可能正在尝试更改 defaultSuccessUrl
。
这指定用户在身份验证成功后将被重定向到哪里。
http
.oauth2Login(oauth2Login -> oauth2Login
.defaultSuccessUrl("/welcome")
)
我已经创建了一个 Spring Oidc 客户端应用程序。我配置了一个 oauth2 客户端,如下所示:
spring:
security:
oauth2:
client:
registration:
google:
client-id: my_client_id
client-secret: my_secret
clientName: myapp
redirectUri: 'http://localhost:8081/wellcome'
WebSecurityConfigurerAdapter
....
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.oauth2Login();
}
redirect url 配置在 http://localhost:8081/wellcome
在我初始化身份验证后,客户端被重定向到google身份验证页面,它不断要求身份验证。 如果我保留默认重定向 url,(即 ../oauth2/code/google),应用程序工作正常。
如果我配置不同的重定向,为什么重定向无法正常工作 url?
默认的重定向 URI 是 /login/oauth2/callback/{registrationId}
。
重定向到 /login/oauth2/callback/{registrationId}
时,OAuth2LoginAuthenticationFilter
将处理请求,尝试对用户进行身份验证并创建 OAuth2AuthenticationToken
。
通过更改重定向 URI,不会调用 OAuth2LoginAuthenticationFilter
并且应用程序不知道用户是否已通过身份验证,这就是它提示他们再次进行身份验证的原因。
您可能正在尝试更改 defaultSuccessUrl
。
这指定用户在身份验证成功后将被重定向到哪里。
http
.oauth2Login(oauth2Login -> oauth2Login
.defaultSuccessUrl("/welcome")
)