ユーザー関連の情報のために、認証サーバーが(個別のリソースサーバー上の)保護されたリソースにアクセスする必要があるシナリオがあります。この保護されたリソースにアクセスするには、アクセストークンが必要です。私は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());