[java-shib-attribute] 01/01: IDP-2272 Expose LDAP metrics
Codeberg
noreply at shibboleth.net
Wed Jan 7 14:12:45 UTC 2026
This is an automated email from the git hooks/post-receive script.
codeberg pushed a commit to branch IDP-2272
in repository java-shib-attribute.
View the commit online:
https://codeberg.org/Shibboleth/java-shib-attribute/commit/c9435d28c4e1ebfdb989822d389224866c4343e2
commit c9435d28c4e1ebfdb989822d389224866c4343e2
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Apr 1 11:01:14 2025 +0100
IDP-2272 Expose LDAP metrics
https://shibboleth.atlassian.net/browse/IDP-2272
Add an autowired bean into the LDAPDataConnector to communicate between the
metrics and ldaptive
---
.../attribute/resolver/dc/ldap/impl/LDAPDataConnector.java | 12 ++++++++++++
.../dc/ldap/ldap-attribute-resolver-spring-context.xml | 10 +++++++++-
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnector.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnector.java
index 5c98ecf99..ead1de21b 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnector.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnector.java
@@ -31,6 +31,7 @@ import org.ldaptive.ssl.SSLContextInitializer;
import org.ldaptive.ssl.SslConfig;
import org.ldaptive.ssl.X509SSLContextInitializer;
import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.resolver.ResolutionException;
@@ -45,6 +46,7 @@ import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.metrics.LDAPMetricAccumulator;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
@@ -62,6 +64,9 @@ public class LDAPDataConnector extends AbstractSearchDataConnector<ExecutableSea
/** For executing LDAP searches. */
@NonnullAfterInit private SearchOperation searchOperation;
+ /** Optional Accumulator for Ldaptive events. */
+ @Autowired @Nullable private LDAPMetricAccumulator metricAccumulator;
+
/** Whether the default validator is being used. */
private boolean defaultValidator = true;
@@ -153,6 +158,9 @@ public class LDAPDataConnector extends AbstractSearchDataConnector<ExecutableSea
getValidator().setThrowValidateError(throwValidateError);
}
policeForJVMTrust();
+ if (metricAccumulator != null) {
+ metricAccumulator.incrementEventOne();
+ }
}
catch (final Exception e) {
setLastFail(Instant.now());
@@ -205,6 +213,10 @@ public class LDAPDataConnector extends AbstractSearchDataConnector<ExecutableSea
throw new ResolutionException(getLogPrefix() + " Search filter cannot be null");
}
+ if (metricAccumulator != null) {
+ metricAccumulator.incrementEventTwo();
+ }
+
try {
assert searchOperation!=null && connectionFactory!=null;
final SearchResponse result = filter.execute(searchOperation, connectionFactory);
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring-context.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring-context.xml
index 55b8014c4..01ba43bb1 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring-context.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring-context.xml
@@ -1,7 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+ <context:annotation-config />
+
+ <bean id="shibboleth.metrics.LdapAccumulator" class="net.shibboleth.shared.metrics.LDAPMetricAccumulator" lazy-init="true" />
+
+
<bean id="connectionFactory" class="org.ldaptive.PooledConnectionFactory" init-method="initialize" destroy-method="close"
p:blockWaitTime="PT5S"
p:failFastInitialize="false"
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list