如何使用仅具有tokenValue的OAuth2RestTemplate?

时间:2019-05-09 13:08:56

标签: spring spring-security-oauth2

当其他应用程序使用访问令牌作为参数调用起始端点时,该应用程序将启动。访问令牌是一种字符串。

然后,我必须调用其他一些基于该令牌进行身份验证的端点。

是否可以创建OAuth2RestTemplate来发出仅具有tokenValue的请求而没有访问令牌uri?

1 个答案:

答案 0 :(得分:0)

据我所知,您可以通过实现AccessTokenProvider接口并进行设置来实现此目的:

https://docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/client/token/AccessTokenProvider.html

尽管如此,OAuth2RestTemplate正是为您简化了这种流程的使用。如果您的用法很简单,那么最好使用默认的RestTemplate并使用HTTP规范。因此,为此,您应该使用Authorization类型的Bearer标头。像这样:

HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Bearer " + tokenValue);

并在您的请求中使用此标头,如下所示:

HttpEntity<String> request = new HttpEntity<String>(headers);
ResponseEntity<BodyClass> response = restTemplate.exchange(url, HttpMethod.GET, request, BodyClass.class);
BodyClass body = response.getBody();

希望有帮助。