@Test
    void verifyRequestAsSignedJwt() throws Exception {
        val service = getOidcRegisteredService("whatever");
        val serviceJsonWebKeys = oidcServiceJsonWebKeystoreCache.get(new OidcJsonWebKeyCacheKey(service, OidcJsonWebKeyUsage.SIGNING));
        val jsonWebKey = (PublicJsonWebKey) serviceJsonWebKeys.get().getJsonWebKeys().getFirst();
        val claims = new JWTClaimsSet.Builder()
            .subject("cas")
            .claim("scope", new String[]{"openid", "profile"})
            .claim("aud", "https://server.example.com")
            .claim("client_notification_token", UUID.randomUUID().toString())
            .claim("client_id", List.of(service.getClientId()))
            .build();
        servicesManager.save(service);

        val signedJwt = JsonWebTokenSigner
            .builder()
            .key(jsonWebKey.getPrivateKey())
            .algorithm(jsonWebKey.getAlgorithm())
            .build()
            .sign(JwtClaims.parse(claims.toString()));

        val request = new MockHttpServletRequest();
        request.addParameter(OAuth20Constants.REQUEST, signedJwt);
        request.addParameter(OAuth20Constants.CLIENT_ID, service.getClientId());
        val response = new MockHttpServletResponse();
        val context = new JEEContext(request, response);
        val scopes = oauthRequestParameterResolver.resolveRequestParameter(context, OAuth20Constants.SCOPE, List.class).orElseThrow();
        assertEquals(2, Objects.requireNonNull(scopes).size());
        val aud = oauthRequestParameterResolver.resolveRequestParameter(context, "aud", List.class).orElseThrow();
        assertEquals(1, Objects.requireNonNull(aud).size());
    }
This is {@link DefaultOAuth20RequestParameterResolverTests}.

@author Misagh Moayyed
@since 6.6.0
support/cas-server-support-oidc/src/test/java/org/apereo/cas/oidc/web/DefaultOAuth20RequestParameterResolverTests.java