Frühjahr OAuth 2 Anruf - /oauth-token Ergab 401 (nicht autorisiert)
Gruß an alle, ich versuche zu konfigurieren einfache authorization code flow über Spring Security, OAuth.
Getestet habe ich meine Zulassung und resource-server-Konfiguration über folgende Ansätze:
- Erstellen Sie eine web-Anwendung als client und die Nutzung Ihrer Seite, um das Feuer http-post-Aufruf /oauth/autorisieren.
- Nach dem aufstehen code, ich benutze die gleiche Seite zu
Feuer eine andere http-post mit code und get token. - Am Ende, ich benutze
curl -H " Ort token header-innen und Antwort geschützt
Ressource.
Aber wenn ich versuche, mit rest-Vorlage. Es werfen Fehlermeldung 401 Unbefugte Fehler.
Server-side - Sicherheit zu konfigurieren:
<http auto-config="true" pattern="/protected/**"
authentication-manager-ref="authenticationManager">
<custom-filter ref="resourceFilter" before="PRE_AUTH_FILTER" />
<csrf disabled="true" />
</http>
<http auto-config="true">
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<form-login default-target-url="/admin.html" />
<logout logout-success-url="/welcome.html" logout-url="/logout"/>
<csrf disabled="true" />
</http>
<authentication-manager alias="authenticationManager">
<authentication-provider>
<user-service>
<user name="admin" password="123456" authorities="ROLE_USER,ROLE_ADMIN" />
</user-service>
</authentication-provider>
</authentication-manager>
Server-side - Zulassung und Ressourcen konfigurieren:
<oauth:authorization-server
client-details-service-ref="clientDetails" error-page="error">
<oauth:authorization-code />
</oauth:authorization-server>
<oauth:client-details-service id="clientDetails">
<oauth:client client-id="admin" secret="fooSecret" />
</oauth:client-details-service>
<oauth:resource-server id="resourceFilter" />
Client-Seite:
<oauth:client id="oauth2ClientContextFilter" />
<oauth:resource id="sso" client-id="admin"
access-token-uri="http://localhost:8080/tough/oauth/token"
user-authorization-uri="http://localhost:8080/tough/oauth/authorize"
use-current-uri="true" client-secret="secret"
client-authentication-scheme="header" type="authorization_code"
scope="trust" />
<oauth:rest-template id="template" resource="sso"/>
Wenn jemand weiß, wo schief geht, bitte lass es mich wissen.
InformationsquelleAutor John | 2015-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Puh... ich habe das problem gelöst. Es gab zwei Probleme mit meiner Konfiguration oben.
dienen Benutzer-Authentifizierung. Es Ergebnis
client sind alle abgelehnt bis ich mal anlegen neuer Sicherheitsbereich für
token-Endpunkt und ihn konfigurieren, um eine Authentifizierung manger, entwickelt für
client.
Hinweis-client unterschiedlich ist vom Benutzer. Client ist Dritter zugreifen wollen Ressourcen gehören zu Ihrem Benutzer(auch als resource owner). Hoffe die oben hilft
🙂 Cheers
InformationsquelleAutor John
Ich hatte das gleiche problem. Es half, fügen Sie ein
Frühling Wertpapiere authentication-manager, kleben die clientDetailsService der authentication manager. So
fast das problem bei mir gelöst. Ich hätte noch eine Frage: Da ClientDetailsUserDetailsService hat keinen Standard-Konstruktor, der Frühling warf Ausnahmen von der form
Welche ich nicht lösen konnte, ohne eine Kopie dieser Klasse Erhalt der clientDetailsService als Eigentum, statt einen Konstruktor arg.
InformationsquelleAutor siddhartino