[java-identity-provider] 17/51: Revamp logging bean, add warning if property auto-search is off.
Rod Widdowson
rdw at steadingsoftware.com
Sat Mar 16 14:28:49 UTC 2024
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch dev/IDP-2147
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=ce28ac97b93311077b3478b842724b990414a42e
commit ce28ac97b93311077b3478b842724b990414a42e
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Feb 16 13:20:25 2024 -0500
Revamp logging bean, add warning if property auto-search is off.
---
.../idp/admin/impl/LogImplementationDetails.java | 51 +++++++++++++---------
.../net/shibboleth/idp/conf/global-system.xml | 4 +-
2 files changed, 32 insertions(+), 23 deletions(-)
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/LogImplementationDetails.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/LogImplementationDetails.java
index 866c44e6e..4c47d7170 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/LogImplementationDetails.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/admin/impl/LogImplementationDetails.java
@@ -19,42 +19,41 @@ import java.util.ServiceLoader;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import org.slf4j.Logger;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ApplicationObjectSupport;
import com.google.common.base.StandardSystemProperty;
import net.shibboleth.idp.Version;
import net.shibboleth.idp.module.IdPModule;
import net.shibboleth.idp.plugin.IdPPlugin;
+import net.shibboleth.idp.spring.IdPPropertiesApplicationContextInitializer;
import net.shibboleth.profile.module.ModuleContext;
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
- * A bean that logs IdP internals when instantiated.
+ * A bean that logs IdP internals when instantiated, and outputs a number of warning conditions.
*
* @since 4.3.0
*/
-public final class LogImplementationDetails {
+public final class LogImplementationDetails extends ApplicationObjectSupport {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(LogImplementationDetails.class);
- /**
- * <p>Log the IdP version and Java version and vendor at INFO level.</p>
- *
- * <p>Log system properties defined by {@link StandardSystemProperty} at DEBUG level.</p>
- *
- * <p>Log duplicate properties if found at WARN level.</p>
- *
- * @param idpHomeLocation idp.home property
- * @param duplicateProperties tracking of duplicated properties
- */
- public LogImplementationDetails(@Nullable @NotEmpty final String idpHomeLocation,
- @Nullable @NotEmpty final String duplicateProperties) {
-
+ /** {@inheritDoc} */
+ @Override
+ protected boolean isContextRequired() {
+ return true;
+ }
+
+// Checkstyle: CyclomaticComplexity OFF
+ /** {@inheritDoc} */
+ @Override
+ protected void initApplicationContext(@Nonnull final ApplicationContext context) throws BeansException {
log.info("Shibboleth IdP Version {}", Version.getVersion());
log.info("Java version='{}' vendor='{}'", StandardSystemProperty.JAVA_VERSION.value(),
StandardSystemProperty.JAVA_VENDOR.value());
@@ -78,30 +77,42 @@ public final class LogImplementationDetails {
}
}
+ final String idpHomeLocation =
+ context.getEnvironment().getProperty(IdPPropertiesApplicationContextInitializer.IDP_HOME_PROPERTY);
if (idpHomeLocation != null) {
- final ModuleContext context = new ModuleContext(idpHomeLocation);
+ final ModuleContext moduleContext = new ModuleContext(idpHomeLocation);
final List<IdPModule> modules = ServiceLoader.
load(IdPModule.class).
stream().
map(e->e.get()).
- filter(f->f.isEnabled(context)).
+ filter(f->f.isEnabled(moduleContext)).
collect(Collectors.toList());
if (modules.isEmpty()) {
log.info("No Modules Enabled");
} else {
log.info("Enabled Modules:");
for (final IdPModule module : modules) {
- log.info("\t\t{}", module.getName(context));
+ log.info("\t\t{}", module.getName(moduleContext));
}
}
} else {
log.warn("Could not enumerate Modules");
}
+ final String duplicateProperties =
+ context.getEnvironment().getProperty(IdPPropertiesApplicationContextInitializer.IDP_DUPLICATE_PROPERTY);
if (duplicateProperties != null && !duplicateProperties.isBlank()) {
log.warn("Duplicate properties were detected: {}", duplicateProperties);
}
+ final String autoSearch =
+ context.getEnvironment().getProperty(
+ IdPPropertiesApplicationContextInitializer.IDP_AUTOSEARCH_PROPERTY);
+ if (!Boolean.valueOf(autoSearch)) {
+ log.warn("{} is false or unset, plugin use may require additional changes to add new property sources",
+ IdPPropertiesApplicationContextInitializer.IDP_AUTOSEARCH_PROPERTY);
+ }
}
+// Checkstyle: CyclomaticComplexity ON
}
\ No newline at end of file
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml
index fa3b71148..90dc1c19b 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml
@@ -193,9 +193,7 @@
p:metricRegistry-ref="shibboleth.metrics.MetricRegistry"
p:contextLookAsideMap-ref="shibboleth.ContextLookAsideMap" />
- <bean class="net.shibboleth.idp.admin.impl.LogImplementationDetails"
- c:_0="%{idp.home}"
- c:_1="%{idp.duplicateProperties:}"/>
+ <bean class="net.shibboleth.idp.admin.impl.LogImplementationDetails" />
<bean class="net.shibboleth.idp.spring.DeprecatedPropertyBean">
<property name="deprecatedProperties">
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list