0

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()); 

Antwort

0

Eine Menge Dinge falsch sein könnte. Überprüfen Sie zunächst, wofür der Ressourcenserver das Zugriffstoken benötigt - welche Bereiche er benötigt usw. Stellen Sie sicher, dass das Zugriffstoken mit den richtigen Bereichen generiert wird. Sie haben auch erwähnt, dass Sie ein Zugriffstoken benötigen, um auf Benutzerressourcen zuzugreifen. Ich kenne den von Ihnen verwendeten OAuth2TokenGranter nicht, aber überprüfen Sie, ob das generierte Zugriffstoken mit einer Benutzerautorisierung verknüpft ist. Ihr Token Granter hat möglicherweise das Zugriffstoken generiert, aber wenn es nicht mit einer Benutzerautorisierung verknüpft ist, antwortet Ihr Autorisierungsserver auf die Anfrage des Ressourcenservers mit unvollständiger Information - was dazu führt, dass Ihr Ressourcenserver Ihren Anfragezugriff verweigert.

Verwandte Themen