@Override
    public boolean validate(final WebContext context) {
        return FunctionUtils.doAndHandle(() -> {
            val requestUri = context.getRequestParameter(OidcConstants.REQUEST_URI).orElseThrow();
            val uriToken = ticketRegistry.getTicket(requestUri, OidcPushedAuthorizationRequest.class);
            val uriFactory = (OidcPushedAuthorizationRequestFactory) ticketFactory.get(OidcPushedAuthorizationRequest.class);
            val holder = uriFactory.toAccessTokenRequest(uriToken);
            context.setRequestAttribute(OidcPushedAuthorizationRequest.class.getName(), holder);
            val givenClientId = getClientIdFromRequest(context);
            return givenClientId.equals(holder.getClientId()) && verifyRegisteredServiceByClientId(context, holder.getClientId()) != null;
        }, throwable -> false).get();
    }
This is {@link OidcPushedAuthorizationRequestValidator}.

@author Misagh Moayyed
@since 6.5.0
support/cas-server-support-oidc-core-api/src/main/java/org/apereo/cas/oidc/ticket/OidcPushedAuthorizationRequestValidator.java