From 8b498aaf5616db940d92ce17e31bab88e9bbf423 Mon Sep 17 00:00:00 2001 From: Douglas Palmer Date: Wed, 26 Jun 2024 22:16:06 -0700 Subject: [PATCH] Flaky test: org.keycloak.testsuite.oauth.TokenIntrospectionTest#testUnsupportedToken Closes #30111 Signed-off-by: Douglas Palmer --- .../oidc/AccessTokenIntrospectionProvider.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/services/src/main/java/org/keycloak/protocol/oidc/AccessTokenIntrospectionProvider.java b/services/src/main/java/org/keycloak/protocol/oidc/AccessTokenIntrospectionProvider.java index 59d39efc3b22..d45f3540380f 100644 --- a/services/src/main/java/org/keycloak/protocol/oidc/AccessTokenIntrospectionProvider.java +++ b/services/src/main/java/org/keycloak/protocol/oidc/AccessTokenIntrospectionProvider.java @@ -112,10 +112,12 @@ public Response introspect(String token, EventBuilder eventBuilder) { tokenMetadata.put("active", userSession != null); // if consumer requests application/jwt return a JWT representation of the introspection contents in an jwt field - boolean isJwtRequest = org.keycloak.utils.MediaType.APPLICATION_JWT.equals(session.getContext().getRequestHeaders().getHeaderString(HttpHeaders.ACCEPT)); - if (isJwtRequest && Boolean.parseBoolean(client.getAttribute(Constants.SUPPORT_JWT_CLAIM_IN_INTROSPECTION_RESPONSE_ENABLED))) { - // consumers can use this to convert an opaque token into an JWT based token - tokenMetadata.put("jwt", session.tokens().encode(accessToken)); + if (accessToken != null) { + boolean isJwtRequest = org.keycloak.utils.MediaType.APPLICATION_JWT.equals(session.getContext().getRequestHeaders().getHeaderString(HttpHeaders.ACCEPT)); + if (isJwtRequest && Boolean.parseBoolean(client.getAttribute(Constants.SUPPORT_JWT_CLAIM_IN_INTROSPECTION_RESPONSE_ENABLED))) { + // consumers can use this to convert an opaque token into an JWT based token + tokenMetadata.put("jwt", session.tokens().encode(accessToken)); + } } return Response.ok(JsonSerialization.writeValueAsBytes(tokenMetadata)).type(MediaType.APPLICATION_JSON_TYPE).build();