@ConditionalOnMissingBean(name = "interruptCookieValueManager")
        @Bean
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        public CookieValueManager interruptCookieValueManager(
            @Qualifier(TenantExtractor.BEAN_NAME)
            final TenantExtractor tenantExtractor,
            @Qualifier(GeoLocationService.BEAN_NAME)
            final ObjectProvider<GeoLocationService> geoLocationService,
            final CasConfigurationProperties casProperties,
            @Qualifier("interruptCookieCipherExecutor")
            final CipherExecutor cookieCipherExecutor) {
            val props = casProperties.getInterrupt().getCookie();
            if (props.getCrypto().isEnabled()) {

                val cipherExecutorResolver = new DefaultCipherExecutorResolver(cookieCipherExecutor, tenantExtractor,
                    InterruptCookieProperties.class, bindingContext -> {
                    val properties = bindingContext.value();
                    return CipherExecutorUtils.newStringCipherExecutor(properties.getInterrupt().getCookie().getCrypto(), InterruptTrackingCookieCipherExecutor.class);
                });
                
                return new DefaultCasCookieValueManager(cipherExecutorResolver, tenantExtractor,
                    geoLocationService, DefaultCookieSameSitePolicy.INSTANCE, props);
            }
            return new NoOpCookieValueManager(tenantExtractor);
        }
This is {@link CasInterruptAutoConfiguration}.

@author Misagh Moayyed
@since 5.2.0
support/cas-server-support-interrupt-core/src/main/java/org/apereo/cas/config/CasInterruptAutoConfiguration.java