Java 提取身份验证时发生Spring Oauth2 RemoteTokenServices错误

Java 提取身份验证时发生Spring Oauth2 RemoteTokenServices错误,java,spring,oauth,spring-security,spring-security-oauth2,Java,Spring,Oauth,Spring Security,Spring Security Oauth2,我有一个资源服务器和一个身份验证服务器 在资源请求时,它在/oauth/check_令牌端点上与身份验证服务器验证接收到的访问令牌。这会给出一个使我的请求崩溃的响应 响应发送为: Written [{exp=1433335640, scope=[read, write], authorities=[ROLE_USER], client_id=client-w-s}] as "application/json;charset=UTF-8" using [org.springframework.ht

我有一个资源服务器和一个身份验证服务器

在资源请求时,它在
/oauth/check_令牌
端点上与身份验证服务器验证接收到的访问令牌。这会给出一个使我的请求崩溃的响应

响应发送为:

Written [{exp=1433335640, scope=[read, write], authorities=[ROLE_USER], client_id=client-w-s}] as "application/json;charset=UTF-8" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@58a88f5a]
当我的资源服务器收到它时:

2015-06-03 14:17:48.277 DEBUG 9492 --- [nio-8181-exec-3] o.s.web.client.RestTemplate              : POST request for "http://localhost:6707/oauth/check_token" resulted in 200 (OK)
2015-06-03 14:17:48.277 DEBUG 9492 --- [nio-8181-exec-3] o.s.web.client.RestTemplate              : Reading [interface java.util.Map] as "application/json;charset=UTF-8" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@67409450]
2015-06-03 14:17:48.283 ERROR 9492 --- [nio-8181-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

java.lang.ArrayStoreException: null
    at java.util.ArrayList.toArray(Unknown Source)
    at org.springframework.security.oauth2.provider.token.DefaultAccessTokenConverter.extractAuthentication(DefaultAccessTokenConverter.java:139)
这是一段它失败的代码:

Collection<? extends GrantedAuthority> authorities = null;
if (user==null && map.containsKey(AUTHORITIES)) {
    @SuppressWarnings("unchecked")
    String[] roles = ((Collection<String>)map.get(AUTHORITIES)).toArray(new String[0]);
    authorities = AuthorityUtils.createAuthorityList(roles);
}
Collection我找到了“解决方案”

我的pom文件中存在版本不匹配。当我的身份验证服务器正在运行
spring-security-oauth2-2.0.5.RELEASE
时,我的资源服务器正在运行
spring-security-oauth2-2.0.7.RELEASE


不同版本声明的响应不同

我认为自从spring-security-oauth2 2.0.7.RELEASE发布以来,DefaultAccessTokenConverter实现中出现了一个错误,因为这行代码:

if(user==null&&map.containsKey(权限)){ ... }

为什么会出现“user==null”条件? “user”变量不是null,因此该条件永远不会为true,并且authorities数组未填充

我认为这是一个SpringSecurityOAuth2实现错误