From 1c70e777b053b60240f899bec1cad79f97e0e6d6 Mon Sep 17 00:00:00 2001 From: Bill Smith Date: Tue, 27 Nov 2018 17:25:39 -0700 Subject: [PATCH] [SHIBUI-704] Added an event listener to attempt to reload filters at app startup. WIP. --- .../admin/ui/ShibbolethUiApplication.java | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java index b548b98d4..e2c133532 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/ShibbolethUiApplication.java @@ -1,6 +1,8 @@ package edu.internet2.tier.shibboleth.admin.ui; +import edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter; import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository; +import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -16,6 +18,9 @@ import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; @SpringBootApplication @ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = "edu.internet2.tier.shibboleth.admin.ui.configuration.auto.*")) @@ -42,9 +47,31 @@ public static class MetadataResolversResourceIdEmitter { MetadataResolverRepository metadataResolverRepository; @EventListener - void showMetadataResolversResourceIds(ApplicationStartedEvent e) { + public void showMetadataResolversResourceIds(ApplicationStartedEvent e) { metadataResolverRepository.findAll() .forEach(it -> System.out.println(String.format("MetadataResolver [%s: %s]", it.getName(), it.getResourceId()))); } } + + @Component + public static class MetadataResolverInitializingApplicationStartupListener { + + @Autowired + MetadataResolverService metadataResolverService; + + @Autowired + MetadataResolverRepository metadataResolverRepository; + + @Transactional + @EventListener + public void initializeResolvers(ApplicationStartedEvent e) { + metadataResolverRepository.findAll() + .forEach(it -> { + System.out.println(String.format("Reloading filters for resolver [%s: %s]", it.getName(), it.getResourceId())); +// List filters = it.getMetadataFilters(); +// filters.forEach(System.out::println); + metadataResolverService.reloadFilters(it.getResourceId()); + }); + } + } }