Spring security 5 oauth2 Войти - PullRequest
       5

Spring security 5 oauth2 Войти

0 голосов
/ 07 декабря 2018

У меня есть веб-приложение 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"));
}

Кто-то, пожалуйста, помогите мне.Я могу предоставить любые дополнительные сведения, которые могут вам потребоваться

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