@Override public void configureServiceRegistry(final ServiceRegistryExecutionPlan plan) { plan.registerServiceRegistry(jsonServiceRegistry()); } };
@ConditionalOnMissingBean(name = "serviceRegistry") @Bean @RefreshScope public ServiceRegistry serviceRegistry() { val plan = serviceRegistryExecutionPlan(); val filter = (Predicate) Predicates.not(Predicates.instanceOf(ImmutableServiceRegistry.class)); val chainingRegistry = new ChainingServiceRegistry(eventPublisher); if (plan.find(filter).isEmpty()) { LOGGER.warn("Runtime memory is used as the persistence storage for retrieving and persisting service definitions. " + "Changes that are made to service definitions during runtime WILL be LOST when the CAS server is restarted. " + "Ideally for production, you should choose a storage option (JSON, JDBC, MongoDb, etc) to track service definitions."); val services = getInMemoryRegisteredServices().orElseGet(ArrayList::new); chainingRegistry.addServiceRegistry(new InMemoryServiceRegistry(eventPublisher, services)); } chainingRegistry.addServiceRegistries(plan.getServiceRegistries()); return chainingRegistry; }
@ConditionalOnProperty(prefix = "cas.serviceRegistry.schedule", name = "enabled", havingValue = "true", matchIfMissing = true) @Bean public Runnable servicesManagerScheduledLoader() { val plan = serviceRegistryExecutionPlan(); val filter = (Predicate) Predicates.not(Predicates.instanceOf(ImmutableServiceRegistry.class)); if (!plan.find(filter).isEmpty()) { LOGGER.trace("Background task to load services is enabled to run every [{}]", casProperties.getServiceRegistry().getSchedule().getRepeatInterval()); return new ServicesManagerScheduledLoader(servicesManager()); } LOGGER.trace("Background task to load services is disabled"); return ServicesManagerScheduledLoader.noOp(); }
@Override public void configureServiceRegistry(final ServiceRegistryExecutionPlan plan) { val callbackService = samlIdPCallbackService().getId().concat(".*"); LOGGER.debug("Initializing SAML IdP callback service [{}]", callbackService); val service = new RegexRegisteredService(); service.setId(RandomUtils.getNativeInstance().nextLong()); service.setEvaluationOrder(Ordered.HIGHEST_PRECEDENCE); service.setName(service.getClass().getSimpleName()); service.setDescription("SAML Authentication Request Callback"); service.setServiceId(callbackService); plan.registerServiceRegistry(new SamlIdPServiceRegistry(eventPublisher, service)); } };
@Override public void configureServiceRegistry(final ServiceRegistryExecutionPlan plan) { val service = new RegexRegisteredService(); service.setId(RandomUtils.getNativeInstance().nextLong()); service.setEvaluationOrder(Ordered.HIGHEST_PRECEDENCE); service.setName(service.getClass().getSimpleName()); service.setDescription("OAuth Authentication Callback Request URL"); service.setServiceId(oauthCallbackService().getId()); service.setAttributeReleasePolicy(new DenyAllAttributeReleasePolicy()); plan.registerServiceRegistry(new OAuth20ServiceRegistry(eventPublisher, service)); } };