@RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
    @Bean
    public IgniteConfiguration igniteConfiguration(
        @Qualifier(TicketCatalog.BEAN_NAME)
        final TicketCatalog ticketCatalog,
        final CasConfigurationProperties casProperties) {
        val ignite = casProperties.getTicket().getRegistry().getIgnite();
        val config = new IgniteConfiguration();
        val spi = new TcpDiscoverySpi();
        if (StringUtils.hasLength(ignite.getLocalAddress())) {
            spi.setLocalAddress(ignite.getLocalAddress());
        }
        if (ignite.getLocalPort() != -1) {
            spi.setLocalPort(ignite.getLocalPort());
        }
        spi.setJoinTimeout(Beans.newDuration(ignite.getJoinTimeout()).toMillis());
        spi.setAckTimeout(Beans.newDuration(ignite.getAckTimeout()).toMillis());
        spi.setNetworkTimeout(Beans.newDuration(ignite.getNetworkTimeout()).toMillis());
        spi.setSocketTimeout(Beans.newDuration(ignite.getSocketTimeout()).toMillis());
        spi.setThreadPriority(ignite.getThreadPriority());
        spi.setForceServerMode(ignite.isForceServerMode());
        val finder = new TcpDiscoveryVmIpFinder();
        finder.setAddresses(ignite.getIgniteAddress());
        spi.setIpFinder(finder);
        config.setDiscoverySpi(spi);
        val cacheConfigurations = buildIgniteTicketCaches(ignite, ticketCatalog);
        config.setCacheConfiguration(cacheConfigurations.toArray(CacheConfiguration[]::new));
        config.setClientMode(ignite.isClientMode());
        val factory = buildSecureTransportForIgniteConfiguration(casProperties);
        if (factory != null) {
            config.setSslContextFactory(factory);
        }
        val dataStorageConfiguration = new DataStorageConfiguration();
        val dataRegionConfiguration = new DataRegionConfiguration();
        dataRegionConfiguration.setName("DefaultRegion");
        dataRegionConfiguration.setMaxSize(ignite.getDefaultRegionMaxSize());
        dataRegionConfiguration.setPersistenceEnabled(ignite.isDefaultPersistenceEnabled());
        dataStorageConfiguration.setDefaultDataRegionConfiguration(dataRegionConfiguration);
        dataStorageConfiguration.setSystemRegionMaxSize(ignite.getDefaultRegionMaxSize());
        config.setDataStorageConfiguration(dataStorageConfiguration);

        val sqlSchemas = ticketCatalog
            .findAll()
            .stream()
            .map(TicketDefinition::getProperties)
            .map(TicketDefinitionProperties::getStorageName)
            .toArray(String[]::new);
        config.getSqlConfiguration().setSqlSchemas(sqlSchemas);
        return config;
    }
This is {@link CasIgniteTicketRegistryAutoConfiguration}.

@author Misagh Moayyed
@since 5.0.0
support/cas-server-support-ignite-ticket-registry/src/main/java/org/apereo/cas/config/CasIgniteTicketRegistryAutoConfiguration.java