/support/cas-server-support-mongo-ticket-registry/src/main/java/org/apereo/cas/config/MongoDbTicketRegistryTicketCatalogConfiguration.java

https://github.com/Jasig/cas · Java · 74 lines · 57 code · 11 blank · 6 comment · 0 complexity · eb2491e34c811cfe54fbbb40b9cefab8 MD5 · raw file

  1. package org.apereo.cas.config;
  2. import org.apereo.cas.configuration.CasConfigurationProperties;
  3. import org.apereo.cas.configuration.features.CasFeatureModule;
  4. import org.apereo.cas.util.spring.boot.ConditionalOnFeatureEnabled;
  5. import org.springframework.beans.factory.annotation.Qualifier;
  6. import org.springframework.boot.autoconfigure.AutoConfiguration;
  7. import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
  8. import org.springframework.boot.context.properties.EnableConfigurationProperties;
  9. import org.springframework.cloud.context.config.annotation.RefreshScope;
  10. import org.springframework.context.ConfigurableApplicationContext;
  11. import org.springframework.context.annotation.Bean;
  12. import org.springframework.context.annotation.Configuration;
  13. import org.springframework.context.annotation.ScopedProxyMode;
  14. import java.util.function.Function;
  15. /**
  16. * This is {@link MongoDbTicketRegistryTicketCatalogConfiguration}.
  17. *
  18. * @author Misagh Moayyed
  19. * @since 5.2.0
  20. */
  21. @EnableConfigurationProperties(CasConfigurationProperties.class)
  22. @ConditionalOnFeatureEnabled(feature = CasFeatureModule.FeatureCatalog.TicketRegistry, module = "mongo")
  23. @AutoConfiguration
  24. public class MongoDbTicketRegistryTicketCatalogConfiguration extends BaseTicketDefinitionBuilderSupportConfiguration {
  25. public MongoDbTicketRegistryTicketCatalogConfiguration(
  26. final ConfigurableApplicationContext applicationContext,
  27. final CasConfigurationProperties casProperties,
  28. @Qualifier("mongoDbTicketCatalogConfigurationValuesProvider")
  29. final CasTicketCatalogConfigurationValuesProvider configProvider) {
  30. super(casProperties, configProvider, applicationContext);
  31. }
  32. @Configuration(value = "MongoDbTicketRegistryTicketCatalogProviderConfiguration", proxyBeanMethods = false)
  33. @EnableConfigurationProperties(CasConfigurationProperties.class)
  34. public static class MongoDbTicketRegistryTicketCatalogProviderConfiguration {
  35. @ConditionalOnMissingBean(name = "mongoDbTicketCatalogConfigurationValuesProvider")
  36. @Bean
  37. @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
  38. public CasTicketCatalogConfigurationValuesProvider mongoDbTicketCatalogConfigurationValuesProvider() {
  39. return new CasTicketCatalogConfigurationValuesProvider() {
  40. @Override
  41. public Function<CasConfigurationProperties, String> getServiceTicketStorageName() {
  42. return p -> "serviceTicketsCollection";
  43. }
  44. @Override
  45. public Function<CasConfigurationProperties, String> getProxyTicketStorageName() {
  46. return p -> "proxyTicketsCollection";
  47. }
  48. @Override
  49. public Function<CasConfigurationProperties, String> getTicketGrantingTicketStorageName() {
  50. return p -> "ticketGrantingTicketsCollection";
  51. }
  52. @Override
  53. public Function<CasConfigurationProperties, String> getProxyGrantingTicketStorageName() {
  54. return p -> "proxyGrantingTicketsCollection";
  55. }
  56. @Override
  57. public Function<CasConfigurationProperties, String> getTransientSessionStorageName() {
  58. return p -> "transientSessionTicketsCollection";
  59. }
  60. };
  61. }
  62. }
  63. }