Spring Security + Google OAuth2登录:访问令牌是否为空?

时间:2018-11-16 08:26:18

标签: java spring-mvc spring-security spring-security-oauth2 google-login

我从默认的Spring Security OAuth2登录实现(不是使用Spring Boot)中收到此错误:

  

[invalid_token_response]尝试检索OAuth 2.0访问令牌响应时发生错误:提取类型为[org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse]类型和内容类型为[application / json; charset = utf-8];嵌套的异常是org.springframework.http.converter.HttpMessageNotReadableException:读取OAuth 2.0访问令牌响应时发生错误:null;嵌套的异常是java.lang.NullPointerException

screenshot here

情节是:我进入任何受保护的页面,它重定向到Google“选择一个帐户”,然后选择该帐户并爆炸,重定向到/ login?显示上述文本的错误。

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 :(得分:0)

我遇到了同样的问题。杰克逊的依赖性解决了这个问题。

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
相关问题