Zum Inhalt springen
ecdsa.com
Nimbus JOSE + JWT (Java)Java

Fehlermeldung

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

Auch ausgegeben als

  • 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

Was der Fehler bedeutet

Der Schlüsselselektor von Nimbus hat für dieses Token keinen Kandidatenschlüssel geliefert: Entweder gehört der `alg` des Tokens nicht zu den Algorithmen, die der Selektor akzeptiert, oder kein Schlüssel im JWK-Set passt zu `kid` und Schlüsseltyp des Tokens. Nimbus sagt absichtlich nicht, welcher der beiden Fälle vorliegt. Hinter Spring Security ist das sehr oft der RS256-Standard von `NimbusJwtDecoder`, der auf einen Aussteller trifft, der mit ES256 signiert.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Dem Decoder mitteilen, welchen Algorithmus der Aussteller verwendet

    `jwsAlgorithm(...)` (oder `jwsAlgorithms(...)`) am Builder ersetzt den RS256-Standard. Beschränke die Liste auf die Algorithmen, die der Aussteller tatsächlich verwendet.

    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.

    Oder in application.yml konfigurieren

    Spring Boot bietet dieselbe Einstellung als `jws-algorithms` an.

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

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen