2017-06-06 7 views
0

In unserem Projekt wollen wir einen "Master" -Client haben, für den der Benutzer einmalig ein Zugriffs-Token erhalten muss. Alle weiteren Clients, die ein Zugriffs-Token benötigen, tun dies über den "Master" -Client.Kann ich ein OAuth2-Zugriffstoken verwenden, um ein Zugriffstoken für einen anderen Client zu erhalten?

Derzeit muss sich der Benutzer jedes Mal anmelden, wenn ein Client ein Zugriffstoken benötigt. Wenn unser "Master" -Client über ein gültiges Token verfügt und ich versuche, mit ihm zum autorisierten Endpunkt zu gelangen, werde ich entweder zur Anmeldeseite weitergeleitet oder erhalte eine "InsufficientAuthenticationException: Der Benutzer muss mit Spring Security authentifiziert werden, bevor die Autorisierung abgeschlossen werden kann."

An dieser Stelle frage ich mich, ob es sogar beabsichtigt ist, auf diese Weise auf den autorisierten Endpunkt zuzugreifen oder ob wir nur etwas falsch machen.

Antwort

0

Ich hatte das gleiche Problem. Im Grunde genommen habe ich den AbstractTokenGranter mit dem neuen grant_type erweitert, in dem ich eine Authentifizierung vom Token-Speicher erhalten und ein neues TokenRequest mit der zweiten clientId erzeugt habe. Außerdem müssen Sie einen neuen AbstractUserDetailsAuthenticationProvider mit Ihren Überprüfungen erstellen und UsernamePasswordAuthenticationToken erweitern, um sie in die Kette einzubinden. Alles, was noch übrig ist, fügen Sie granter und provider in setup hinzu und verwenden Sie Ihren nagelneuen grant_type in der Anfrage zum oauth master server. Viel Glück!

Verwandte Themen