J'utilise jose4j pour valider et traiter un fichier JWT. Le JWT ressemble à ceci et il passe la validation dans la page d'accueil de JWT. Clé de vérification pour jose4j JwtConsumer
Cependant, je ne peux pas faire de même en utilisant la bibliothèque jose4j java. L'exception se plaint de la clé de vérification que j'ai définie. Mais il y a plusieurs types de clés définies dans la bibliothèque et je les ai essayées mais pas de chance. Le code est le suivant:
import java.util.Map;
import org.jose4j.jwt.JwtClaims;
import org.jose4j.jwt.consumer.InvalidJwtException;
import org.jose4j.jwt.consumer.JwtConsumer;
import org.jose4j.jwt.consumer.JwtConsumerBuilder;
import org.jose4j.keys.HmacKey;
public class YGJWT {
public static void main(String args[]) throws InvalidJwtException {
String jwt = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ";
String secret = "secret";
JwtConsumer jwtConsumer = new JwtConsumerBuilder()
.setVerificationKey(new HmacKey(secret.getBytes())) //what kind of key do i need to use it here?
.build();
JwtClaims jwtClaims = jwtConsumer.processToClaims(jwt);
Map<String, Object> claimsMap = jwtClaims.getClaimsMap();
claimsMap.forEach((String key, Object val) -> {
System.out.println(key + ": " + val.toString());
});
}
}
Toute aide est appréciée.
Merci Brian, ça résout le problème immédiatement! –
Content de pouvoir vous aider et merci d'utiliser [la bibliothèque jose4j JWT] (https://bitbucket.org/b_c/jose4j/wiki/Home)! –
@BrianCampbell si je peux demander ici -;) Je reçois une exception lorsque j'essaie d'obtenir un jeton JWT ' Causé par: java.security.InvalidKeyException: Aucun fournisseur installé ne prend en charge cette clé: sun.security.rsa.RSAPrivateCrtKeyImpl –