Java Spring Security+;Google OAuth2登录:访问令牌为空?
我从默认的Spring Security OAuth2登录实现(不使用Spring引导)中获得此错误: [invalid_token_response]尝试检索OAuth 2.0访问令牌响应时出错:提取类型[class org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse]和内容类型[application/json;charset=utf-8]的响应时出错;嵌套的异常为org.springframework.http.converter.httpMessageNodeTableException:读取OAuth 2.0访问令牌响应时出错:null;嵌套异常是java.lang.NullPointerException 情节是:我转到任何受保护的页面,它重定向到谷歌“选择一个帐户”之类的东西,我选择帐户并砰的一声,重定向到/登录?显示上述文本时出错 Spring安全配置:Java Spring Security+;Google OAuth2登录:访问令牌为空?,java,spring-mvc,spring-security,spring-security-oauth2,google-login,Java,Spring Mvc,Spring Security,Spring Security Oauth2,Google Login,我从默认的Spring Security OAuth2登录实现(不使用Spring引导)中获得此错误: [invalid_token_response]尝试检索OAuth 2.0访问令牌响应时出错:提取类型[class org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse]和内容类型[application/json;charset=utf-8]的响应时出错;嵌套的异常为org.springfram
@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的合适教程,这实际上会有所帮助。我也遇到了同样的问题。杰克逊解决了这个问题
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
com.fasterxml.jackson.core
杰克逊数据绑定
我也有同样的问题,但jackson databind没有解决。你最终成功了吗?(感谢任何人的帮助)是的,它确实奏效了,但在我的情况下,问题只是——杰克逊的依赖。