@Bean
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        @ConditionalOnMissingBean(name = "oidcAccessTokenJwtCipherExecutor")
        public CipherExecutor<Serializable, String> oidcAccessTokenJwtCipherExecutor(
            final CasConfigurationProperties casProperties,
            @Qualifier(OidcIssuerService.BEAN_NAME)
            final OidcIssuerService oidcIssuerService,
            @Qualifier("oidcDefaultJsonWebKeystoreCache")
            final LoadingCache<OidcJsonWebKeyCacheKey, JsonWebKeySet> oidcDefaultJsonWebKeystoreCache) {

            val crypto = casProperties.getAuthn().getOauth().getAccessToken().getCrypto();
            return FunctionUtils.doIf(crypto.isEnabled(),
                () -> {
                    val cipher = new OidcJwtAccessTokenCipherExecutor(oidcDefaultJsonWebKeystoreCache, oidcIssuerService);
                    cipher.setStrategyType(BaseStringCipherExecutor.CipherOperationsStrategyType.valueOf(crypto.getStrategyType()));
                    cipher.setSigningEnabled(crypto.isSigningEnabled());
                    cipher.setEncryptionEnabled(crypto.isEncryptionEnabled());
                    return cipher;
                },
                CipherExecutor::noOpOfSerializableToString).get();
        }
This is {@link OidcConfiguration}.

@author Misagh Moayyed
@since 5.0.0
support/cas-server-support-oidc/src/main/java/org/apereo/cas/config/OidcConfiguration.java