@Override
    protected byte[] sign(final byte[] value, final Key signingKey) {
        return Optional.ofNullable(this.signingWebKey)
            .map(key -> {
                val kid = key.getKeyId();
                if (StringUtils.isNotBlank(kid)) {
                    getSigningOpHeaders().put(JsonWebKey.KEY_ID_PARAMETER, kid);
                }
                val alg = StringUtils.defaultIfBlank(key.getAlgorithm(),
                    getSigningAlgorithmFor(key.getKey()));
                getSigningOpHeaders().put(JsonWebKey.ALGORITHM_PARAMETER, alg);
                return signWith(value, alg, signingKey);
            })
            .orElseGet(() -> super.sign(value, signingKey));
    }
Get ticket cipher executor.

@param signingKey        the signing key
@param encryptionKey     the encryption key
@param registeredService the registered service
@param cipherExecutor    the cipher executor
@return the jwt ticket cipher executor
support/cas-server-support-oidc-core-api/src/main/java/org/apereo/cas/oidc/util/InternalJwtAccessTokenCipherExecutor.java