Ich habe Probleme beim Zugriff auf verschachtelte Ansprüche von einem JWT mit jose4j. Ich habe einen JWT, deren Anspruch Satz wie folgt aussieht:Zugriff auf verschachtelte JWT-Ansprüche mit jose4j
{
"iss": "awesome.issuer",
"iat": 1300819370,
"exp": 1300819380,
"clm": "string claim",
"sub": "batman",
"context": {
"username": "mpdavis",
"firstName": "Michael",
"lastName": "Davis
}
}
ich in Probleme laufen bin, wenn ich versuche den Zugriff auf und der verschachtelten Ansprüche innerhalb des context
Anspruch. Ich kann mit der auf Top-Level-Ansprüche leicht zugreifen.
private String qsh;
qsh = jwtClaims.getClaimValue("qsh", String.class);
Es scheint, als ob ich zwei Optionen habe, wenn ich einen verschachtelten Anspruch bekommen möchte.
Die erste Möglichkeit besteht darin, einen Weg zu finden, den Anspruch context
als Map<String,Object>
zurückzugeben und jeden Anspruch aus diesem Objekt herauszuziehen. Die andere Option besteht darin, flattenClaims
zu verwenden, um alle Ansprüche in eine Map<String,List<Object>>
zu reduzieren und das erste Objekt aus der Karte für die verschachtelten Ansprüche abzurufen.
Keine dieser Optionen scheint besonders belastbar, wenn der Dienst, der diesen JWTs gewährt, das Schema sehr ändert.
Gibt es einen besseren Weg?