[java-plugin-shibd] branch main updated: Pass agent into application for metrics.
Scott Cantor
cantor.2 at osu.edu
Fri Aug 15 13:44:15 UTC 2025
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-plugin-shibd.
View the commit online:
http://git.shibboleth.net/view/?p=java-plugin-shibd.git;a=commit;h=f7722241a5b822385a1c84572a642454e8df2f34
The following commit(s) were added to refs/heads/main by this push:
new f772224 Pass agent into application for metrics.
f772224 is described below
commit f7722241a5b822385a1c84572a642454e8df2f34
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Aug 15 09:44:09 2025 -0400
Pass agent into application for metrics.
---
.../java/net/shibboleth/sp/impl/BasicAgent.java | 19 ++++++
.../net/shibboleth/sp/impl/BasicApplication.java | 79 +++++++++++++++-------
2 files changed, 73 insertions(+), 25 deletions(-)
diff --git a/sp-server-impl/src/main/java/net/shibboleth/sp/impl/BasicAgent.java b/sp-server-impl/src/main/java/net/shibboleth/sp/impl/BasicAgent.java
index 527ba83..f7a23c2 100644
--- a/sp-server-impl/src/main/java/net/shibboleth/sp/impl/BasicAgent.java
+++ b/sp-server-impl/src/main/java/net/shibboleth/sp/impl/BasicAgent.java
@@ -31,6 +31,7 @@ import com.google.common.base.MoreObjects;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.collection.CollectionSupport;
+import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.net.IPRange;
import net.shibboleth.shared.primitive.StringSupport;
@@ -190,6 +191,24 @@ public class BasicAgent extends BasicApplication implements Agent {
return CollectionSupport.copyToList(apps);
}
+
+
+
+ /** {@inheritDoc} */
+ @Override
+ protected void doInitialize() throws ComponentInitializationException {
+ super.doInitialize();
+
+ // Handle ourselves.
+ setAgent(this);
+
+ // Install us into each child Application.
+ for (final Application a : applicationMap.values()) {
+ if (a instanceof BasicApplication app) {
+ app.setAgent(this);
+ }
+ }
+ }
/** {@inheritDoc} */
@Override
diff --git a/sp-server-impl/src/main/java/net/shibboleth/sp/impl/BasicApplication.java b/sp-server-impl/src/main/java/net/shibboleth/sp/impl/BasicApplication.java
index e9e4cb4..846bb54 100644
--- a/sp-server-impl/src/main/java/net/shibboleth/sp/impl/BasicApplication.java
+++ b/sp-server-impl/src/main/java/net/shibboleth/sp/impl/BasicApplication.java
@@ -46,6 +46,7 @@ import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.logic.FunctionSupport;
import net.shibboleth.shared.primitive.StringSupport;
import net.shibboleth.shared.service.ReloadableService;
+import net.shibboleth.sp.Agent;
import net.shibboleth.sp.Application;
import net.shibboleth.sp.profile.StateTokenManager;
@@ -54,6 +55,7 @@ import net.shibboleth.sp.profile.StateTokenManager;
*/
public class BasicApplication extends DefaultRelyingPartyConfigurationResolver implements Application {
+ /** Our self-managed "defaults". */
@Nonnull private BasicRelyingPartyConfiguration defaultRelyingPartyConfiguration;
/** Lookup strategy for authenticating authority. */
@@ -65,6 +67,9 @@ public class BasicApplication extends DefaultRelyingPartyConfigurationResolver i
/** Token consumer list lookup strategy. */
@Nonnull private Function<ProfileRequestContext,List<String>> tokenConsumerLookupStrategy;
+ /** Link to parent {@link Agent}. */
+ @Nullable private Agent agent;
+
/** State token management. */
@NonnullAfterInit private StateTokenManager stateTokenManager;
@@ -88,30 +93,7 @@ public class BasicApplication extends DefaultRelyingPartyConfigurationResolver i
sessionInitiatorLookupStrategy = FunctionSupport.constant(CollectionSupport.emptyList());
tokenConsumerLookupStrategy = FunctionSupport.constant(CollectionSupport.emptyList());
}
-
- /** {@inheritDoc} */
- @Override
- protected void doInitialize() throws ComponentInitializationException {
- // Init our default config and inject into parent class.
- defaultRelyingPartyConfiguration.setId(getId());
- defaultRelyingPartyConfiguration.initialize();
- setDefaultConfiguration(defaultRelyingPartyConfiguration);
- super.doInitialize();
-
- if (stateTokenManager == null) {
- throw new ComponentInitializationException("StateTokenManager cannot be null");
- } else if (metadataResolver == null) {
- throw new ComponentInitializationException("MetadataResolver cannot be null");
- } else if (transcodingRegistry == null) {
- throw new ComponentInitializationException("AttributeTranscoderRegistry cannot be null");
- } else if (attributeResolver == null) {
- throw new ComponentInitializationException("AttributeResolver cannot be null");
- } else if (attributeFilter == null) {
- throw new ComponentInitializationException("AttributeFilter cannot be null");
- }
- }
-
/** {@inheritDoc} */
@SuppressWarnings("null")
@Override
@@ -126,13 +108,37 @@ public class BasicApplication extends DefaultRelyingPartyConfigurationResolver i
final String base = super.getMetricName();
if (base != null) {
- // TODO: get access to agent ID for metrics
- return MetricRegistry.name(base, getId());
+ if (agent != null) {
+ return MetricRegistry.name(base, agent.getId(), getApplicationId());
+ } else {
+ // Just in case, but should not happen in practice.
+ return MetricRegistry.name(base, getApplicationId());
+ }
}
return null;
}
+ /**
+ * Gets the parent {@link Agent}.
+ *
+ * @return app parent {@link Agent} or null
+ */
+ @Nullable public Agent getAgent() {
+ return agent;
+ }
+
+ /**
+ * Sets the parent {@link Agent}.
+ *
+ * @param theAgent parent {@link Agent} or null
+ */
+ public void setAgent(@Nullable final Agent theAgent) {
+ checkSetterPreconditions();
+
+ agent = theAgent;
+ }
+
/**
* Set default issuer value to use for this application.
*
@@ -426,6 +432,29 @@ public class BasicApplication extends DefaultRelyingPartyConfigurationResolver i
attributeFilter = Constraint.isNotNull(service, "AttributeFilter service cannot be null");
}
+ /** {@inheritDoc} */
+ @Override
+ protected void doInitialize() throws ComponentInitializationException {
+ // Init our default config and inject into parent class.
+ defaultRelyingPartyConfiguration.setId(getApplicationId());
+ defaultRelyingPartyConfiguration.initialize();
+ setDefaultConfiguration(defaultRelyingPartyConfiguration);
+
+ super.doInitialize();
+
+ if (stateTokenManager == null) {
+ throw new ComponentInitializationException("StateTokenManager cannot be null");
+ } else if (metadataResolver == null) {
+ throw new ComponentInitializationException("MetadataResolver cannot be null");
+ } else if (transcodingRegistry == null) {
+ throw new ComponentInitializationException("AttributeTranscoderRegistry cannot be null");
+ } else if (attributeResolver == null) {
+ throw new ComponentInitializationException("AttributeResolver cannot be null");
+ } else if (attributeFilter == null) {
+ throw new ComponentInitializationException("AttributeFilter cannot be null");
+ }
+ }
+
/** {@inheritDoc} */
@Override
public int hashCode() {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list