@Bean
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        @ConditionalOnMissingBean(name = CipherExecutor.BEAN_NAME_WEBFLOW_CIPHER_EXECUTOR)
        public CipherExecutor webflowCipherExecutor(final CasConfigurationProperties casProperties) {
            val webflow = casProperties.getWebflow();
            val crypto = webflow.getCrypto();

            var enabled = crypto.isEnabled();
            if (!enabled && StringUtils.isNotBlank(crypto.getEncryption().getKey()) && StringUtils.isNotBlank(crypto.getSigning().getKey())) {
                LOGGER.warn("Webflow encryption/signing is not enabled explicitly in the configuration, yet signing/encryption keys "
                            + "are defined for operations. CAS will proceed to enable the webflow encryption/signing functionality.");
                enabled = true;
            }
            if (enabled) {
                return WebflowConversationStateCipherExecutor.from(crypto);
            }
            LOGGER.warn("Webflow encryption/signing is turned off. This "
                        + "MAY NOT be safe in a production environment. Consider using other choices to handle encryption, "
                        + "signing and verification of webflow state.");
            return CipherExecutor.noOp();
        }
This is {@link CasCoreWebflowConfiguration}.

@author Misagh Moayyed
@since 5.0.0
core/cas-server-core-webflow/src/main/java/org/apereo/cas/config/CasCoreWebflowConfiguration.java