Ich habe ein Szenario, bei dem der Autorisierungsserver auf eine geschützte Ressource zugreifen muss (auf einem separaten Ressourcenserver), auf die für benutzerbezogene Informationen zugegriffen werden muss. Um auf diese geschützte Ressource zuzugreifen, ist ein Zugriffstoken erforderlich. Ich generierte dieses Token manuell von TokenGranter
und fügte es in der Kopfzeile der Anforderung, die Restvorlage erstellt wurde, hinzu. Wenn auf die Ressource zugegriffen wird, authentifiziert sie das Token mit dem Autorisierungsserver.Zugriff auf geschützte Ressource vom Autorisierungsserver
Mein Problem ist, auch wenn das Access-Token in der Datenbank erzeugt, bekomme ich Zugang verweigert, wenn ich versuche, auf die Ressource zuzugreifen.
Mache ich etwas falsch beim Zugriff auf die Ressource? Wie kann ich vom Autorisierungsserver auf eine geschützte Ressource zugreifen?
Unten finden Sie den Code in Berechtigungs Rest Controller verwendet, um die Ressource zu beantragen:
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());