【发布时间】:2016-11-12 11:17:31
【问题描述】:
我有一个场景,授权服务器需要访问受保护的资源(在单独的资源服务器上)需要访问以获取用户相关信息。要访问此受保护资源,需要访问令牌。我通过TokenGranter 手动生成了这个令牌,并将它添加到由 Rest Template 发出的请求的标头中。当资源被访问时,它会向授权服务器验证令牌。
我的问题是,即使在数据库中生成了访问令牌,当我尝试访问该资源时,我仍然拒绝访问。
我在访问资源时做错了吗?如何从授权服务器访问受保护的资源?
以下是授权休息控制器中用于请求资源的代码:
private final OAuth2TokenGranter tg;
TokenRequest tr = new TokenRequest(reqparams, clientId, scope, grantType);
OAuth2AccessToken grantToken = tg.grant("bearer", tr);
String token = "Bearer " + grantToken.getValue();
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", token);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<String> entity = new HttpEntity<String>(headers);
restTemplate.exchange(url, HttpMethod.GET, entity, PagedResources.class, authentication.getName());
【问题讨论】:
标签: spring spring-security access-token spring-security-oauth2