docs: @Autowired
      @RefreshScope
      @Bean
      public IgniteConfiguration igniteConfiguration(@Qualifier("ticketCatalog") final TicketCatalog ticketCatalog) {
          val ignite = casProperties.getTicket().getRegistry().getIgnite();
  
          val config = new IgniteConfiguration();
          val spi = new TcpDiscoverySpi();
  
          if (!StringUtils.isEmpty(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();
          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);
  
          if (LOGGER.isDebugEnabled()) {
              LOGGER.debug("igniteConfiguration.cacheConfiguration=[{}]", (Object[]) config.getCacheConfiguration());
              LOGGER.debug("igniteConfiguration.getDiscoverySpi=[{}]", config.getDiscoverySpi());
              LOGGER.debug("igniteConfiguration.getSslContextFactory=[{}]", config.getSslContextFactory());
          }
  
          return config;
      }