@Override
    protected ResponseEntity buildIntrospectionEntityResponse(final WebContext context,
                                                              final OAuth20IntrospectionAccessTokenResponse introspect) {
        val responseEntity = super.buildIntrospectionEntityResponse(context, introspect);
        return context.getRequestHeader(HttpHeaders.ACCEPT)
            .filter(headerValue -> StringUtils.equalsAnyIgnoreCase(headerValue, OAuth20Constants.INTROSPECTION_JWT_HEADER_CONTENT_TYPE))
            .map(headerValue -> {
                val registeredService = OAuth20Utils.getRegisteredOAuthServiceByClientId(
                    getConfigurationContext().getServicesManager(), introspect.getClientId());
                val signingAndEncryptionService = getConfigurationContext().getIntrospectionSigningAndEncryptionService();
                return FunctionUtils.doAndHandle(() -> {
                    if (signingAndEncryptionService.shouldSignToken(registeredService) || signingAndEncryptionService.shouldEncryptToken(registeredService)) {
                        return signAndEncryptIntrospection(context, introspect, registeredService);
                    }
                    return buildPlainIntrospectionClaims(context, introspect, registeredService);
                }, e -> ResponseEntity.badRequest().body("Unable to produce introspection JWT claims")).get();
            })
            .orElse(responseEntity);
    }
/" + OidcConstants.INTROSPECTION_URL
        })
    @Operation(summary = "Handle OIDC introspection request")
    @Override
    public ResponseEntity handleRequest(final HttpServletRequest request, final HttpServletResponse response) throws Throwable {
        val webContext = new JEEContext(request, response);
        if (!getConfigurationContext().getIssuerService().validateIssuer(webContext, List.of(OidcConstants.INTROSPECTION_URL))) {
            val body = OAuth20Utils.getErrorResponseBody(OAuth20Constants.INVALID_REQUEST, "Invalid issuer");
            return new ResponseEntity(body, HttpStatus.BAD_REQUEST);
        }
        return super.handleRequest(request, response);
    }

    @PostMapping(consumes = {
        OAuth20Constants.INTROSPECTION_JWT_HEADER_CONTENT_TYPE,
        MediaType.APPLICATION_JSON_VALUE,
        MediaType.APPLICATION_FORM_URLENCODED_VALUE
    }, produces = {
        MediaType.APPLICATION_JSON_VALUE,
        OAuth20Constants.INTROSPECTION_JWT_HEADER_CONTENT_TYPE
    },
        value = {
            '/' + OidcConstants.BASE_OIDC_URL + '/' + OidcConstants.INTROSPECTION_URL,
            "/*
support/cas-server-support-oidc-core-api/src/main/java/org/apereo/cas/oidc/web/controllers/introspection/OidcIntrospectionEndpointController.java