У меня есть веб-приложение Spring mvc, которое я хочу защитить с помощью безопасности пружин. 5 Oauth2, приложение успешно перенаправляет на Google для аутентификации, но проблема в том, что оно сохраняет перенаправление на страницу согласия сразу же после того, как пользователь выбирает учетную запись изэта страница согласия.ниже моя соответствующая конфигурация.
@Override
protected void configure(HttpSecurity http) throws Exception {
http.exceptionHandling()
.authenticationEntryPoint(authenticationEntryPoint())
.and()
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/")
.and()
.addFilterAfter(oauth2ClientContextFilter, ExceptionTranslationFilter.class)
.addFilterBefore(oauth2ClientAuthenticationProcessingFilter(), FilterSecurityInterceptor.class)
.anonymous()
.disable();
}
@Bean
public OAuth2ProtectedResourceDetails authorizationCodeResource() {
logger.info("authorizationCodeResource");
AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails();
details.setId("google");
details.setClientId(environment.getProperty("google.clientId"));
details.setClientSecret(environment.getProperty("google.clientSecret"));
details.setUserAuthorizationUri(environment.getProperty("google.userAuthorizationUri"));
details.setAccessTokenUri(environment.getProperty("google.accessTokenUri"));
details.setAuthenticationScheme(AuthenticationScheme.query);
details.setClientAuthenticationScheme(AuthenticationScheme.form);
details.setPreEstablishedRedirectUri(environment.getProperty("google.reDirectURI"));
details.setUseCurrentUri(false);
details.setScope(new ArrayList<>(Arrays.asList("openid")));
return details;
}
@Bean
public OAuth2ClientAuthenticationProcessingFilter oauth2ClientAuthenticationProcessingFilter() {
logger.info("oauth2ClientAuthenticationProcessingFilter");
OAuth2RestOperations restTemplate = new OAuth2RestTemplate(authorizationCodeResource(), oauth2ClientContext);
OAuth2ClientAuthenticationProcessingFilter filter = new OAuth2ClientAuthenticationProcessingFilter(
environment.getProperty("google.callbackURI"));
filter.setRestTemplate(restTemplate);
filter.setTokenServices(googleUserInfoTokenServices());
return filter;
}
@Bean
@Description("Google API UserInfo resource server")
public GoogleUserInfoTokenServices googleUserInfoTokenServices() {
logger.info("googleUserInfoTokenServices");
GoogleUserInfoTokenServices userInfoTokenServices = new GoogleUserInfoTokenServices(
environment.getProperty("google.userInfoUri"),
environment.getProperty("google.clientId"));
return userInfoTokenServices;
}
@Bean
public AuthenticationEntryPoint authenticationEntryPoint() {
logger.info("authenticationEntryPoint");
return new LoginUrlAuthenticationEntryPoint(environment.getProperty("google.callbackURI"));
}
Кто-то, пожалуйста, помогите мне.Я могу предоставить любые дополнительные сведения, которые могут вам потребоваться