Ich verwendeJWT Signatur entspricht nicht lokal berechnete Signatur
JwtBuilder builder = Jwts.builder()
.setId(user.getEmail())
.signWith(signatureAlgorithm, signingKey);
ein Token erstellen dann
Jwts.parser().setSigningKey(secret).parse(token);
zu authentifizieren. Wenn ich dies in einem JUnit-Test ausführe, funktioniert es gut. Wenn ich jedoch ein Token authentifiziere, das als Header über den REST-Aufruf übergeben wurde, schlägt die Authentifizierung mit SignatureException fehl. Ich habe das Token an beiden Enden des HTTP-Aufrufs verifiziert und die Token-Zeichenfolge ist identisch. Der Code zum Erstellen/Authentifizieren ist statisch, daher ist das Geheimnis auf jeder Seite gleich. Irgendwelche Hinweise
beginnt Können Sie ein Beispiel-Token und den geheimen Schlüssel posten? – pedrofb
statisch Schlüssel secret = MacProvider.generateKey(); Signaturalgorithmus signatureAlgorithm = Signaturalgorithmus.HS256; byte [] apiKeySecretBytes = geheim.getEncoded(); Schlüssel signingKey = new SecretKeySpec (apiKeySecretBytes, signatureAlgorithm.getJcaName()); – stanlick