[java-identity-provider] 02/02: IDP-1857 Log the plugins at IdP startup
Rod Widdowson
rdw at steadingsoftware.com
Wed Sep 29 19:23:29 UTC 2021
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=7cefc69228bfa3428dbcee26cef30ae8758f3569
commit 7cefc69228bfa3428dbcee26cef30ae8758f3569
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed Sep 29 20:20:59 2021 +0100
IDP-1857 Log the plugins at IdP startup
https://shibboleth.atlassian.net/browse/IDP-1857
Stage 2 : report on Plugins and enabled Modules
---
.../shibboleth/idp/log/LogbackLoggingService.java | 66 +++++++++++++++++-----
1 file changed, 51 insertions(+), 15 deletions(-)
diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/log/LogbackLoggingService.java b/idp-admin-api/src/main/java/net/shibboleth/idp/log/LogbackLoggingService.java
index 4605b64cc..ee75ab7de 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/log/LogbackLoggingService.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/log/LogbackLoggingService.java
@@ -20,20 +20,13 @@ package net.shibboleth.idp.log;
import java.io.IOException;
import java.io.InputStream;
import java.time.Instant;
+import java.util.List;
+import java.util.ServiceLoader;
+import java.util.stream.Collectors;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import net.shibboleth.idp.Version;
-import net.shibboleth.idp.spring.IdPPropertiesApplicationContextInitializer;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.service.AbstractReloadableService;
-import net.shibboleth.utilities.java.support.service.ServiceException;
-import net.shibboleth.utilities.java.support.service.ServiceableComponent;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
@@ -41,15 +34,27 @@ import org.springframework.context.ApplicationContextAware;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
+import com.google.common.base.StandardSystemProperty;
+import com.google.common.io.Closeables;
+
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.joran.spi.JoranException;
import ch.qos.logback.core.status.ErrorStatus;
import ch.qos.logback.core.status.InfoStatus;
import ch.qos.logback.core.status.StatusManager;
-
-import com.google.common.base.StandardSystemProperty;
-import com.google.common.io.Closeables;
+import net.shibboleth.idp.Version;
+import net.shibboleth.idp.module.IdPModule;
+import net.shibboleth.idp.module.ModuleContext;
+import net.shibboleth.idp.plugin.IdPPlugin;
+import net.shibboleth.idp.spring.IdPPropertiesApplicationContextInitializer;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.component.ComponentSupport;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.service.AbstractReloadableService;
+import net.shibboleth.utilities.java.support.service.ServiceException;
+import net.shibboleth.utilities.java.support.service.ServiceableComponent;
/**
* Simple {@link LoggingService} that watches for logback configuration file changes
@@ -245,6 +250,37 @@ public class LogbackLoggingService extends AbstractReloadableService<Object>
logger.debug("{}", standardSystemProperty);
}
}
+ final List<IdPPlugin> plugins = ServiceLoader.
+ load(IdPPlugin.class).
+ stream().
+ map(e->e.get()).
+ collect(Collectors.toList());
+ if (plugins.isEmpty()) {
+ logger.info("No Plugins Loaded");
+ } else {
+ logger.info("Plugins:");
+ for (final IdPPlugin idpPlugin : plugins) {
+ logger.info("\t\t{} : v{}.{}.{}", idpPlugin.getPluginId(), idpPlugin.getMajorVersion(),
+ idpPlugin.getMajorVersion(), idpPlugin.getPatchVersion());
+ }
+ }
+ final String idpHome = loggerContext.getProperty(IdPPropertiesApplicationContextInitializer.IDP_HOME_PROPERTY);
+ if (idpHome != null) {
+ final ModuleContext context = new ModuleContext(idpHome);
+ final List<IdPModule> modules = ServiceLoader.
+ load(IdPModule.class).
+ stream().
+ map(e->e.get()).
+ filter(f->f.isEnabled(context)).
+ collect(Collectors.toList());
+ if (modules.isEmpty()) {
+ logger.info("No Modules Enabled");
+ } else {
+ logger.info("Enabled Modules:");
+ for (final IdPModule module : modules) {
+ logger.info("\t\t{}", module.getName(context));
+ }
+ }
+ }
}
-
-}
\ No newline at end of file
+}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list