0

Ich bin sehr fest mit diesem Problem für ein paar Tage.Frühling Sicherheit WSO2 IS-Integration - herauszufinden, wie Behörden zuweisen/wso2 Token anpassen

Also was ich versuche zu tun, ist ROLES mit Feder Sicherheitsrahmen zuweisen. Mein Ziel ist es Token zu entschlüsseln, die ich von WSO2 Identity Server 5.0 durch openid erhalten und die Rolle zuweisen, damit ich die Anfrage auf Rollen (Behörden), basierend genehmige

Das ist meine SecurityConfig Klasse in einfacher Feder Boot-App

@Profile("oauth")
@Configuration
@EnableResourceServer
public class SecurityConfig {

}

Also, mit dieser Konfiguration bin ich in der Lage, das Token zu entschlüsseln.

jedoch im Debug-Modus, wenn ich eine Anfrage mit den id_token auf das einfache Feder-Boot-App gemacht, erhielt ich einen Fehler:

java.lang.ClassCastException
java.lang.String nicht gegossen werden kann zu java.util.Collection

Und es geschieht in DefaultAccessTokenConverter Klasse, vor allem in der Codezeile, wenn das Kartenobjekt zu String [] Rollen umgewandelt wird


Das ist mein WSO2 Token decodierte

{
"auth_time": 1464819792, "exp": 1464823490,
"azp": "U1PXsuyV_tdBERmZIoHHnqoGkWIa",
"authorities": "[\"ROLE_ADMIN\",\"approver\",\"Internal\/everyone\"]",
"at_hash": "Hh2LUZl3Bp6yDqyZt4r6Gg",
"aud": [
"U1PXsuyV_tdBERmZIoHHnqoGkWIa"
],
"iss": " https://localhost:9443/oauth2/token ", "locality": "[\"ROLE_ADMIN\"]", "iat": 1464819890 }

Es scheint, dass Frühling Array of String erwartet, nicht String-Objekt (es gibt ein doppeltes Anführungszeichen am Anfang und das Ende des Wertes in Behörden .

Das aud Format scheint zu sein, was der Frühling erwartet.

So gibt es zwei Optionen, die ich o
1. Schreiben Sie einige Konfiguration im Frühjahr OAuth2 denken kann (ich diese aus noch nicht herausgefunden haben)
2. Konfigurieren WSO2 Identity Server (Das, was ich zu versuchen, habe machen).

Es gibt einige Quellen, die sagen, dass wir unseren eigenen JWTTokenGenerator in WSO2-Kohlenstoff implementieren können. Wenn man sich den Code ansieht, scheint es, dass hier die doppelten Anführungszeichen im Claim generiert werden.

org.wso2.carbon.identity.oauth2.authcontext.JWTTokenGenerator

Ich hoffe, es gibt jemanden, gehen durch diese wurde.

Vielen Dank.

Antwort

0

Thank you! Das könnte auch funktionieren! Für eine einfachere Implementierung verwenden wir die Version 5.2.0 Beta, die ein String-Array erzeugt. T

0

Hier finden Sie die Standardimplementierung [1]. Auch ist es besser, wenn Sie mit IS 5.1.0 für 5.1.0 gehen können, siehe [2]. Nachdem Sie den benutzerdefinierten JWTTokenGenerator erstellt haben, kopieren Sie ihn in das Repository/components/lib. Ändern

<TokenGeneratorImplClass> 

Element in identity.xml entsprechend Ihrer benutzerdefinierten Implementierung.

[1] https://svn.wso2.org/repos/wso2/carbon/platform/branches/turing/components/identity/org.wso2.carbon.identity.oauth/4.2.3/src/main/java/org/wso2/carbon/identity/oauth2/authcontext/JWTTokenGenerator

[2] https://github.com/wso2/carbon-identity/tree/master/components/oauth/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/oauth2/authcontext

Verwandte Themen