Spring Security + Google OAuth2 Логин: токен доступа пуст? - PullRequest
0 голосов
/ 16 ноября 2018

Я получаю эту ошибку из стандартной реализации входа в Spring Security OAuth2 (без использования Spring Boot):

[invalid_token_response] Произошла ошибка при попытке получить ответ токена доступа OAuth 2.0:Ошибка при извлечении ответа для типа [class org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse] и типа контента [application / json; charset = utf-8];вложенное исключение - org.springframework.http.converter.HttpMessageNotReadableException: произошла ошибка при чтении ответа маркера доступа OAuth 2.0: null;вложенное исключение: java.lang.NullPointerException

снимок экрана здесь

Сюжет таков: я перехожу на любую защищенную страницу, она перенаправляет в Google "выберите учетную запись"Черт, я выбираю учетную запись и взрыва, перенаправление на / логин? Ошибка при отображении текста, упомянутого выше.

Конфигурация Spring Security:

@Configuration
@EnableWebSecurity()
@PropertySource("classpath:application.properties")
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {   

    @Override
    protected void configure(HttpSecurity http) throws Exception {      
        http    
            .csrf().disable()
            .authorizeRequests()
                .antMatchers("/tlog/**").authenticated()                
            .and().oauth2Login();
    }

    @Bean
    public OAuth2AuthorizedClientService authorizedClientService() {      
        return new InMemoryOAuth2AuthorizedClientService(clientRegistrationRepository());
    }

    @Bean
    public OAuth2AuthorizedClientRepository authorizedClientRepository(OAuth2AuthorizedClientService authorizedClientService) {
        return new AuthenticatedPrincipalOAuth2AuthorizedClientRepository(authorizedClientService);
    }


    @Bean
    public ClientRegistrationRepository clientRegistrationRepository() {        
        return new InMemoryClientRegistrationRepository(googleClientRegistration());        
    }   

    private ClientRegistration googleClientRegistration() {
        return CommonOAuth2Provider.GOOGLE.getBuilder("google")
            .clientId("XXX")
            .clientSecret("ZZZ")
            .build();
    }

}

Чего мне здесь не хватает?Не могу найти приличного учебника, НЕ использующего Spring Boot, который действительно помог бы.

1 Ответ

0 голосов
/ 02 апреля 2019

У меня такая же проблема.Зависимость Джексона разрешила это.

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...