Aller au contenu
ecdsa.com
Nimbus JOSE + JWT (Java)Java

Message d’erreur

Signed JWT rejected: Another algorithm expected, or no matching key(s) found

Également affiché sous la forme

  • com.nimbusds.jose.proc.BadJOSEException: Signed JWT rejected: Another algorithm expected, or no matching key(s) found
  • org.springframework.security.oauth2.jwt.BadJwtException: An error occurred while attempting to decode the Jwt: Signed JWT rejected: Another algorithm expected, or no matching key(s) found

Nimbus JOSE + JWT (Java) — BadJOSEException from DefaultJWTProcessor; also surfaced by Spring Security's NimbusJwtDecoder

Ce que cela signifie

Le sélecteur de clés de Nimbus n’a renvoyé aucune clé candidate pour ce jeton : soit l’`alg` du jeton ne fait pas partie des algorithmes qu’accepte le sélecteur, soit aucune clé du jeu de clés JWK ne correspond au `kid` et au type de clé du jeton. Nimbus ne précise volontairement pas lequel des deux cas s’applique. Derrière Spring Security, il s’agit très souvent de l’algorithme RS256 par défaut de `NimbusJwtDecoder` face à un émetteur qui signe en ES256.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Indiquer au décodeur l’algorithme utilisé par l’émetteur

    `jwsAlgorithm(...)` (ou `jwsAlgorithms(...)`) appelé sur le builder remplace la valeur par défaut RS256. Limitez la liste aux algorithmes que l’émetteur utilise réellement.

    java
    @Bean
    JwtDecoder jwtDecoder() {
      return NimbusJwtDecoder.withIssuerLocation("https://issuer.example.com/realms/main")
          .jwsAlgorithm(SignatureAlgorithm.ES256) // the issuer's algorithm; RS256 is only the default
          .build();
    }
  2. 2.

    Ou le configurer dans application.yml

    Spring Boot expose le même réglage sous le nom `jws-algorithms`.

    yaml
    spring:
      security:
        oauth2:
          resourceserver:
            jwt:
              issuer-uri: https://issuer.example.com/realms/main
              jws-algorithms: ES256

Erreurs associées

Parcourir toute la base de données des erreurs de signature