[java-identity-provider] branch main updated: IDP-2118 - Add metrics for request processing

Scott Cantor cantor.2 at osu.edu
Thu May 25 16:44:44 UTC 2023


This is an automated email from the git hooks/post-receive script.

scantor 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=bac2a941f8969cc2a535bb6f4a4cd6bf96d42da6

The following commit(s) were added to refs/heads/main by this push:
     new bac2a941f IDP-2118 - Add metrics for request processing
bac2a941f is described below

commit bac2a941f8969cc2a535bb6f4a4cd6bf96d42da6
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu May 25 12:44:41 2023 -0400

    IDP-2118 - Add metrics for request processing
    
    https://shibboleth.atlassian.net/browse/IDP-2118
    
    Added a profile counter to each top-level flow.
---
 .../idp/cas/config/AbstractProtocolConfiguration.java      |  3 +++
 .../net/shibboleth/idp/cas/config/LoginConfiguration.java  |  3 +++
 .../net/shibboleth/idp/cas/config/ProxyConfiguration.java  |  7 +++++--
 .../shibboleth/idp/cas/config/ValidateConfiguration.java   |  3 +++
 .../shibboleth/idp/flows/admin/admin-abstract-beans.xml    |  1 +
 .../net/shibboleth/idp/flows/admin/hello-beans.xml         |  5 ++++-
 .../net/shibboleth/idp/flows/admin/lockout-beans.xml       |  5 ++++-
 .../net/shibboleth/idp/flows/admin/mdquery-beans.xml       |  5 ++++-
 .../net/shibboleth/idp/flows/admin/metrics-beans.xml       |  5 ++++-
 .../shibboleth/idp/flows/admin/reload-metadata-beans.xml   |  5 ++++-
 .../shibboleth/idp/flows/admin/reload-service-beans.xml    |  5 ++++-
 .../net/shibboleth/idp/flows/admin/resolvertest-beans.xml  |  5 ++++-
 .../net/shibboleth/idp/flows/admin/revocation-beans.xml    |  5 ++++-
 .../net/shibboleth/idp/flows/admin/status-beans.xml        |  5 ++++-
 .../net/shibboleth/idp/flows/admin/storage-beans.xml       |  5 ++++-
 .../net/shibboleth/idp/flows/admin/unlock-keys-beans.xml   |  5 ++++-
 .../net/shibboleth/idp/flows/cas/cas-abstract-beans.xml    |  1 +
 .../resources/net/shibboleth/idp/flows/cas/login-beans.xml |  9 ++++++---
 .../resources/net/shibboleth/idp/flows/cas/proxy-beans.xml |  9 ++++++---
 .../shibboleth/idp/flows/cas/validate-abstract-beans.xml   | 14 +++++++-------
 .../net/shibboleth/idp/flows/logout/logout-beans.xml       |  1 +
 .../idp/flows/logout/logout-propagation-beans.xml          |  1 +
 .../net/shibboleth/idp/flows/saml/saml-abstract-beans.xml  |  1 +
 .../idp/flows/saml/saml1/artifact-resolution-beans.xml     |  4 ++++
 .../idp/flows/saml/saml1/attribute-query-beans.xml         |  4 ++++
 .../shibboleth/idp/flows/saml/saml1/sso-abstract-beans.xml |  3 +++
 .../idp/flows/saml/saml2/artifact-resolution-beans.xml     |  4 ++++
 .../idp/flows/saml/saml2/attribute-query-beans.xml         |  3 +++
 .../net/shibboleth/idp/flows/saml/saml2/slo-back-beans.xml |  4 ++++
 .../idp/flows/saml/saml2/slo-front-abstract-beans.xml      |  3 +++
 .../shibboleth/idp/flows/saml/saml2/sso-artifact-beans.xml |  3 +++
 .../net/shibboleth/idp/flows/saml/saml2/sso-ecp-beans.xml  |  3 +++
 .../net/shibboleth/idp/flows/saml/saml2/sso-post-beans.xml |  4 ++++
 .../idp/flows/saml/saml2/sso-post-simplesign-beans.xml     |  5 ++++-
 .../shibboleth/idp/flows/saml/saml2/sso-redirect-beans.xml |  4 ++++
 .../idp/flows/saml/saml2/sso-unsolicited-beans.xml         |  4 ++++
 .../impl/ArtifactResolutionProfileConfiguration.java       |  3 +++
 .../config/impl/AttributeQueryProfileConfiguration.java    |  3 +++
 .../config/impl/BrowserSSOProfileConfiguration.java        |  3 +++
 .../impl/ArtifactResolutionProfileConfiguration.java       |  3 +++
 .../config/impl/AttributeQueryProfileConfiguration.java    |  3 +++
 .../config/impl/BrowserSSOProfileConfiguration.java        |  3 +++
 .../saml2/profile/config/impl/ECPProfileConfiguration.java |  3 +++
 .../config/impl/SingleLogoutProfileConfiguration.java      |  3 +++
 44 files changed, 153 insertions(+), 27 deletions(-)

diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/AbstractProtocolConfiguration.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/AbstractProtocolConfiguration.java
index 97d63bb3f..2b38ae23f 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/AbstractProtocolConfiguration.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/AbstractProtocolConfiguration.java
@@ -47,6 +47,9 @@ public abstract class AbstractProtocolConfiguration extends AbstractInterceptorA
 
     /** CAS base protocol URI. */
     @Nonnull @NotEmpty public static final String PROTOCOL_URI = "https://www.apereo.org/cas/protocol";
+
+    /** CAS base profile counter prefix. */
+    @Nonnull @NotEmpty public static final String PROTOCOL_COUNTER = "net.shibboleth.idp.profiles.cas";
     
     /** Default ticket validity. */
     @SuppressWarnings("null")
diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguration.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguration.java
index 1c7ced06f..27d9f4361 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguration.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguration.java
@@ -54,6 +54,9 @@ public class LoginConfiguration extends AbstractProtocolConfiguration
     /** Proxy ticket profile URI. */
     @Nonnull @NotEmpty public static final String PROFILE_ID = PROTOCOL_URI + "/login";
 
+    /** Proxy ticket profile counter name. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = PROTOCOL_COUNTER + ".login";
+    
     /** Default ticket prefix. */
     @Nonnull @NotEmpty public static final String DEFAULT_TICKET_PREFIX = "ST";
 
diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/ProxyConfiguration.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/ProxyConfiguration.java
index bd10127b0..56b742592 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/ProxyConfiguration.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/ProxyConfiguration.java
@@ -29,10 +29,13 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public class ProxyConfiguration extends AbstractProtocolConfiguration {
 
     /** Proxy ticket profile URI. */
-    public static final String PROFILE_ID = PROTOCOL_URI + "/proxy";
+    @Nonnull @NotEmpty public static final String PROFILE_ID = PROTOCOL_URI + "/proxy";
+
+    /** Proxy ticket profile counter name. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = PROTOCOL_COUNTER + ".proxy";
 
     /** Default ticket prefix. */
-    public static final String DEFAULT_TICKET_PREFIX = "PT";
+    @Nonnull @NotEmpty public static final String DEFAULT_TICKET_PREFIX = "PT";
 
     /** Default ticket length (random part). */
     public static final int DEFAULT_TICKET_LENGTH = 25;
diff --git a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/ValidateConfiguration.java b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/ValidateConfiguration.java
index 971a657ff..45c636398 100644
--- a/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/ValidateConfiguration.java
+++ b/idp-cas-api/src/main/java/net/shibboleth/idp/cas/config/ValidateConfiguration.java
@@ -48,6 +48,9 @@ public class ValidateConfiguration extends AbstractProtocolConfiguration {
     /** Ticket validation profile ID. */
     @Nonnull @NotEmpty public static final String PROFILE_ID = PROTOCOL_URI + "/serviceValidate";
 
+    /** Ticket validation profile counter name. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = PROTOCOL_COUNTER + ".serviceValidate";
+
     /** Default ticket validity. */
     @SuppressWarnings("null")
     @Nonnull public static final Duration DEFAULT_TICKET_VALIDITY_PERIOD = Duration.ofHours(12);
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/admin-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/admin-abstract-beans.xml
index 36adb04fe..79d0285df 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/admin-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/admin-abstract-beans.xml
@@ -27,6 +27,7 @@
 
     <bean id="PopulateMetricContext"
         class="org.opensaml.profile.action.impl.PopulateMetricContext" scope="prototype"
+        p:counterName="#{getObject('shibboleth.metrics.ProfileCounter')}"
         p:metricStrategy="#{getObject('shibboleth.metrics.MetricStrategy')}" />
     
     <!--
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/hello-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/hello-beans.xml
index a2fd50f50..8ac2875c2 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/hello-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/hello-beans.xml
@@ -15,8 +15,11 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String" c:_0="http://shibboleth.net/ns/profiles/hello" />
+
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.hello" />
     
     <!-- Default operation/resource suppliers for access checks. -->
 
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/lockout-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/lockout-beans.xml
index 98f0cd99f..bdb43bceb 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/lockout-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/lockout-beans.xml
@@ -15,8 +15,11 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String" c:_0="http://shibboleth.net/ns/profiles/lockout-manager" />
+
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.lockout-manager" />
     
     <!-- Default operation/resource suppliers for access checks. -->
 
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/mdquery-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/mdquery-beans.xml
index bc5109649..bc43bcc07 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/mdquery-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/mdquery-beans.xml
@@ -15,10 +15,13 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String"
         c:_0="http://shibboleth.net/ns/profiles/mdquery" />
 
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.mdquery" />
+
     <!-- Default operation/resource suppliers for access checks. -->
     
     <bean id="shibboleth.AdminOperationLookupStrategy" parent="shibboleth.Functions.Constant" c:target="read" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/metrics-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/metrics-beans.xml
index ece9d1fbf..d563c54fb 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/metrics-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/metrics-beans.xml
@@ -15,10 +15,13 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String"
         c:_0="http://shibboleth.net/ns/profiles/metrics" />
 
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.metrics" />
+
     <!-- Default operation/resource suppliers for access checks. -->
     
     <bean id="shibboleth.AdminOperationLookupStrategy" parent="shibboleth.Functions.Constant" c:target="read" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/reload-metadata-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/reload-metadata-beans.xml
index b3c1ca69c..d5f9f4fa6 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/reload-metadata-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/reload-metadata-beans.xml
@@ -15,10 +15,13 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String"
         c:_0="http://shibboleth.net/ns/profiles/reload-metadata" />
 
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.reload-metadata" />
+
     <!-- Default operation/resource suppliers for access checks. -->
     
     <bean id="shibboleth.AdminOperationLookupStrategy" parent="shibboleth.Functions.Constant" c:target="reload" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/reload-service-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/reload-service-beans.xml
index 9c04d9fbe..6e9915e52 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/reload-service-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/reload-service-beans.xml
@@ -15,10 +15,13 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String"
         c:_0="http://shibboleth.net/ns/profiles/reload-service-configuration" />
 
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.reload-service-configuration" />
+
     <!-- Default operation/resource suppliers for access checks. -->
     
     <bean id="shibboleth.AdminOperationLookupStrategy" parent="shibboleth.Functions.Constant" c:target="reload" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/resolvertest-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/resolvertest-beans.xml
index 8aae1a768..75d95fa57 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/resolvertest-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/resolvertest-beans.xml
@@ -15,10 +15,13 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String"
         c:_0="http://shibboleth.net/ns/profiles/resolvertest" />
 
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.resolvertest" />
+
     <!-- Default operation/resource suppliers for access checks. -->
     
     <bean id="shibboleth.AdminOperationLookupStrategy" parent="shibboleth.Functions.Constant" c:target="read" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/revocation-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/revocation-beans.xml
index 20e44baa2..46e07b101 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/revocation-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/revocation-beans.xml
@@ -15,8 +15,11 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String" c:_0="http://shibboleth.net/ns/profiles/revocation" />
+
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.revocation" />
     
     <!-- Default operation/resource suppliers for access checks. -->
 
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/status-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/status-beans.xml
index 6112dc0c2..6bda725b5 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/status-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/status-beans.xml
@@ -15,9 +15,12 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String" c:_0="http://shibboleth.net/ns/profiles/status" />
     
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.status" />
+    
     <!-- Default operation/resource suppliers for access checks. -->
     
     <bean id="shibboleth.AdminOperationLookupStrategy" parent="shibboleth.Functions.Constant" c:target="read" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/storage-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/storage-beans.xml
index 56b5c4332..5e74c00d8 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/storage-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/storage-beans.xml
@@ -15,9 +15,12 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String" c:_0="http://shibboleth.net/ns/profiles/storage" />
     
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.storage" />
+    
     <!-- Default operation/resource suppliers for access checks. -->
 
     <bean id="shibboleth.AdminOperationLookupStrategy" parent="shibboleth.ContextFunctions.Expression"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/unlock-keys-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/unlock-keys-beans.xml
index 9378038be..215fe664c 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/unlock-keys-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/admin/unlock-keys-beans.xml
@@ -15,8 +15,11 @@
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
-    <!-- Profile ID for flow. -->    
+    <!-- Profile ID for flow. -->
     <bean id="shibboleth.AdminProfileId" class="java.lang.String" c:_0="http://shibboleth.net/ns/profiles/unlock-keys" />
+
+    <!-- Profile counter name. -->
+    <bean id="shibboleth.metrics.ProfileCounter" class="java.lang.String" c:_0="net.shibboleth.idp.profiles.unlock-keys" />
     
     <!-- Default operation/resource suppliers for access checks. -->
 
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/cas-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/cas-abstract-beans.xml
index 000ab9101..59491aa2e 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/cas-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/cas-abstract-beans.xml
@@ -23,6 +23,7 @@
 
     <bean id="PopulateMetricContext"
         class="org.opensaml.profile.action.impl.PopulateMetricContext" scope="prototype"
+        p:counterName="#{getObject('shibboleth.metrics.ProfileCounter')}"
         p:metricStrategy="#{getObject('shibboleth.metrics.MetricStrategy')}" />
 
     <bean id="BuildRelyingPartyContext"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/login-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/login-beans.xml
index e11e7331a..1f13f0ded 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/login-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/login-beans.xml
@@ -1,13 +1,16 @@
 <?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:util="http://www.springframework.org/schema/util"
        xmlns:c="http://www.springframework.org/schema/c"
        xmlns:p="http://www.springframework.org/schema/p"
-       xsi:schemaLocation="
-           http://www.springframework.org/schema/beans
-           http://www.springframework.org/schema/beans/spring-beans.xsd"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
        default-init-method="initialize">
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.cas.config.LoginConfiguration.PROFILE_COUNTER" />
+
     <!-- Action beans -->
     <bean id="InitializeProfileRequestContext"
           class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/proxy-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/proxy-beans.xml
index b6a9a2a67..644f3e5e1 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/proxy-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/proxy-beans.xml
@@ -1,13 +1,16 @@
 <?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:util="http://www.springframework.org/schema/util"
        xmlns:c="http://www.springframework.org/schema/c"
        xmlns:p="http://www.springframework.org/schema/p"
-       xsi:schemaLocation="
-           http://www.springframework.org/schema/beans
-           http://www.springframework.org/schema/beans/spring-beans.xsd"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
        default-init-method="initialize">
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.cas.config.ProxyConfiguration.PROFILE_COUNTER" />
+
     <!-- Action beans -->
     <bean id="InitializeProfileRequestContext"
           class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/validate-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/validate-abstract-beans.xml
index 9072b335f..1cd74b21f 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/validate-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/cas/validate-abstract-beans.xml
@@ -1,13 +1,17 @@
 <?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:util="http://www.springframework.org/schema/util"
        xmlns:c="http://www.springframework.org/schema/c"
        xmlns:p="http://www.springframework.org/schema/p"
-       xsi:schemaLocation="
-           http://www.springframework.org/schema/beans
-           http://www.springframework.org/schema/beans/spring-beans.xsd"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
        default-init-method="initialize">
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.cas.config.ValidateConfiguration.PROFILE_COUNTER" />
+
+
     <!-- Action beans -->
     <bean id="InitializeProfileRequestContext"
           class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
@@ -15,10 +19,6 @@
           p:loggingId="%{idp.service.logging.cas:SSO}"
           p:browserProfile="false" />
 
-    <bean id="PopulateMetricContext"
-        class="org.opensaml.profile.action.impl.PopulateMetricContext" scope="prototype"
-        p:metricStrategy="#{getObject('shibboleth.metrics.MetricStrategy')}" />
-
     <bean id="InitializeValidate"
           class="net.shibboleth.idp.cas.flow.impl.InitializeValidateAction" scope="prototype" />
 
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/logout/logout-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/logout/logout-beans.xml
index 4e8405e06..4733c4209 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/logout/logout-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/logout/logout-beans.xml
@@ -33,6 +33,7 @@
 
     <bean id="PopulateMetricContext"
         class="org.opensaml.profile.action.impl.PopulateMetricContext" scope="prototype"
+        p:counterName="net.shibboleth.idp.profiles.logout"
         p:metricStrategy="#{getObject('shibboleth.metrics.MetricStrategy')}" />
 
     <bean id="PopulateUserAgentContext"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/logout/logout-propagation-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/logout/logout-propagation-beans.xml
index a785a0793..2ff6a8fd6 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/logout/logout-propagation-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/logout/logout-propagation-beans.xml
@@ -29,6 +29,7 @@
 
     <bean id="PopulateMetricContext"
         class="org.opensaml.profile.action.impl.PopulateMetricContext" scope="prototype"
+        p:counterName="net.shibboleth.idp.profiles.logout-propagation"
         p:metricStrategy="#{getObject('shibboleth.metrics.MetricStrategy')}" />
 
     <bean id="PopulateLogoutPropagationContext"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml-abstract-beans.xml
index 89bbe5e70..8071cb942 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml-abstract-beans.xml
@@ -25,6 +25,7 @@
 
     <bean id="PopulateMetricContext"
         class="org.opensaml.profile.action.impl.PopulateMetricContext" scope="prototype"
+        p:counterName="#{getObject('shibboleth.metrics.ProfileCounter')}"
         p:metricStrategy="#{getObject('shibboleth.metrics.MetricStrategy')}" />
 
     <bean id="PostDecodePopulateAuditContext" parent="shibboleth.AbstractPopulateAuditContext"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/artifact-resolution-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/artifact-resolution-beans.xml
index 65cd8995f..29e96fcaf 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/artifact-resolution-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/artifact-resolution-beans.xml
@@ -17,6 +17,10 @@
 
     <import resource="common-beans.xml" />
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml1.profile.config.impl.ArtifactResolutionProfileConfiguration.PROFILE_COUNTER" />
+
+
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.saml.saml1.profile.config.ArtifactResolutionProfileConfiguration).PROFILE_ID}"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/attribute-query-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/attribute-query-beans.xml
index 4ecad29f0..019d9d946 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/attribute-query-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/attribute-query-beans.xml
@@ -17,6 +17,10 @@
 
     <import resource="common-beans.xml" />
     <import resource="conditional:%{idp.home}/conf/intercept/consent-intercept-config.xml" />
+
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml1.profile.config.impl.AttributeQueryProfileConfiguration.PROFILE_COUNTER" />
+
     
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/sso-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/sso-abstract-beans.xml
index df2e16ca6..7f88af3eb 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/sso-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml1/sso-abstract-beans.xml
@@ -20,6 +20,9 @@
     <util:constant id="shibboleth.EndpointType"
         static-field="org.opensaml.saml.saml2.metadata.AssertionConsumerService.DEFAULT_ELEMENT_NAME" />
     
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml1.profile.config.impl.BrowserSSOProfileConfiguration.PROFILE_COUNTER" />
+    
 
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/artifact-resolution-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/artifact-resolution-beans.xml
index 15014d5da..6ed6d3c5b 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/artifact-resolution-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/artifact-resolution-beans.xml
@@ -17,6 +17,10 @@
 
     <import resource="common-beans.xml" />
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.ArtifactResolutionProfileConfiguration.PROFILE_COUNTER" />
+
+
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.saml.saml2.profile.config.ArtifactResolutionProfileConfiguration).PROFILE_ID}"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/attribute-query-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/attribute-query-beans.xml
index 30f2cbb24..4cf2783f8 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/attribute-query-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/attribute-query-beans.xml
@@ -18,6 +18,9 @@
     <import resource="common-beans.xml" />
     <import resource="conditional:%{idp.home}/conf/intercept/consent-intercept-config.xml" />
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.AttributeQueryProfileConfiguration.PROFILE_COUNTER" />
+
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.saml.saml2.profile.config.AttributeQueryProfileConfiguration).PROFILE_ID}"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/slo-back-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/slo-back-beans.xml
index d76ae38a1..d15449a4e 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/slo-back-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/slo-back-beans.xml
@@ -20,6 +20,10 @@
     <util:constant id="shibboleth.EndpointType"
         static-field="org.opensaml.saml.saml2.metadata.SingleLogoutService.DEFAULT_ELEMENT_NAME" />
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.SingleLogoutProfileConfiguration.PROFILE_COUNTER" />
+        
+
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.saml.saml2.profile.config.SingleLogoutProfileConfiguration).PROFILE_ID}"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/slo-front-abstract-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/slo-front-abstract-beans.xml
index 8492edb90..92abd2864 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/slo-front-abstract-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/slo-front-abstract-beans.xml
@@ -22,6 +22,9 @@
     <util:constant id="shibboleth.EndpointType"
         static-field="org.opensaml.saml.saml2.metadata.SingleLogoutService.DEFAULT_ELEMENT_NAME" />
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.SingleLogoutProfileConfiguration.PROFILE_COUNTER" />
+
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.saml.saml2.profile.config.SingleLogoutProfileConfiguration).PROFILE_ID}"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-artifact-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-artifact-beans.xml
index a2eb1ed9e..c97b5d547 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-artifact-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-artifact-beans.xml
@@ -11,6 +11,9 @@
        default-init-method="initialize"
        default-destroy-method="destroy">
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.BrowserSSOProfileConfiguration.PROFILE_COUNTER" />
+
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.idp.saml.saml2.profile.config.impl.BrowserSSOProfileConfiguration).PROFILE_ID}"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-ecp-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-ecp-beans.xml
index 649ec1bd4..8c94eb88c 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-ecp-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-ecp-beans.xml
@@ -17,6 +17,9 @@
         p:loggingId="%{idp.service.logging.saml2sso:SSO}"
         p:browserProfile="false" />
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.ECPProfileConfiguration.PROFILE_COUNTER" />
+
     <bean id="DecodeMessage" class="org.opensaml.profile.action.impl.DecodeMessage" scope="prototype">
         <constructor-arg>
             <bean class="org.opensaml.saml.saml2.binding.decoding.impl.HTTPSOAP11Decoder" scope="prototype"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-post-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-post-beans.xml
index 50107f361..a2eaeed21 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-post-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-post-beans.xml
@@ -11,6 +11,10 @@
        default-init-method="initialize"
        default-destroy-method="destroy">
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.BrowserSSOProfileConfiguration.PROFILE_COUNTER" />
+
+
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.saml.saml2.profile.config.BrowserSSOProfileConfiguration).PROFILE_ID}"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-post-simplesign-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-post-simplesign-beans.xml
index dad62a86b..270dafe55 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-post-simplesign-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-post-simplesign-beans.xml
@@ -11,12 +11,15 @@
        default-init-method="initialize"
        default-destroy-method="destroy">
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.BrowserSSOProfileConfiguration.PROFILE_COUNTER" />
+
+
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.saml.saml2.profile.config.BrowserSSOProfileConfiguration).PROFILE_ID}"
         p:loggingId="%{idp.service.logging.saml2sso:SSO}"
         p:browserProfile="true" />
-    
 
     <bean id="DecodeMessage" class="org.opensaml.profile.action.impl.DecodeMessage" scope="prototype">
         <constructor-arg>
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-redirect-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-redirect-beans.xml
index c54644482..83910589a 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-redirect-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-redirect-beans.xml
@@ -11,6 +11,10 @@
        default-init-method="initialize"
        default-destroy-method="destroy">
     
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.BrowserSSOProfileConfiguration.PROFILE_COUNTER" />
+
+    
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.saml.saml2.profile.config.BrowserSSOProfileConfiguration).PROFILE_ID}"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-unsolicited-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-unsolicited-beans.xml
index 88fd1810f..b99764dd9 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-unsolicited-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/saml/saml2/sso-unsolicited-beans.xml
@@ -11,6 +11,10 @@
        default-init-method="initialize"
        default-destroy-method="destroy">
 
+    <util:constant id="shibboleth.metrics.ProfileCounter"
+        static-field="net.shibboleth.idp.saml.saml2.profile.config.impl.BrowserSSOProfileConfiguration.PROFILE_COUNTER" />
+
+
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
         p:profileId="#{T(net.shibboleth.saml.saml2.profile.config.BrowserSSOProfileConfiguration).PROFILE_ID}"
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/ArtifactResolutionProfileConfiguration.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/ArtifactResolutionProfileConfiguration.java
index 5af3eadf9..7fe75ee15 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/ArtifactResolutionProfileConfiguration.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/ArtifactResolutionProfileConfiguration.java
@@ -34,6 +34,9 @@ import net.shibboleth.shared.logic.PredicateSupport;
 public class ArtifactResolutionProfileConfiguration extends AbstractSAMLProfileConfiguration
         implements net.shibboleth.saml.saml1.profile.config.ArtifactResolutionProfileConfiguration {
 
+    /** Name of profile counter. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = "net.shibboleth.idp.profiles.saml1.query.artifact";
+
     /** Predicate used to determine whether to sign assertions. */
     @Nonnull private Predicate<ProfileRequestContext> signAssertionsPredicate;
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/AttributeQueryProfileConfiguration.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/AttributeQueryProfileConfiguration.java
index 8de530a7e..e8c6b9655 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/AttributeQueryProfileConfiguration.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/AttributeQueryProfileConfiguration.java
@@ -29,6 +29,9 @@ public class AttributeQueryProfileConfiguration extends AbstractSAML1AssertionPr
         implements net.shibboleth.saml.saml1.profile.config.AttributeQueryProfileConfiguration,
             SAMLAssertionProducingProfileConfiguration {
     
+    /** Name of profile counter. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = "net.shibboleth.idp.profiles.saml1.query.attribute";
+    
     /** Constructor. */
     public AttributeQueryProfileConfiguration() {
         this(PROFILE_ID);
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/BrowserSSOProfileConfiguration.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/BrowserSSOProfileConfiguration.java
index ef11c8fd8..3f08e1eeb 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/BrowserSSOProfileConfiguration.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml1/profile/config/impl/BrowserSSOProfileConfiguration.java
@@ -51,6 +51,9 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML1AssertionProduc
             AuthenticationProfileConfiguration, AttributeResolvingProfileConfiguration,
             SAMLAssertionProducingProfileConfiguration {
 
+    /** Name of profile counter. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = "net.shibboleth.idp.profiles.saml1.sso.browser";
+
     /** Whether attributes should be resolved in the course of the profile. */
     @Nonnull private Predicate<ProfileRequestContext> resolveAttributesPredicate;
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/ArtifactResolutionProfileConfiguration.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/ArtifactResolutionProfileConfiguration.java
index ce6d13ce5..dfcd3defe 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/ArtifactResolutionProfileConfiguration.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/ArtifactResolutionProfileConfiguration.java
@@ -34,6 +34,9 @@ import net.shibboleth.shared.logic.PredicateSupport;
 public class ArtifactResolutionProfileConfiguration extends AbstractSAML2ProfileConfiguration
         implements net.shibboleth.saml.saml2.profile.config.ArtifactResolutionProfileConfiguration {
 
+    /** Name of profile counter. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = "net.shibboleth.idp.profiles.saml2.query.artifact";
+
     /** Predicate used to determine whether to sign assertions. */
     @Nonnull private Predicate<ProfileRequestContext> signAssertionsPredicate;
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/AttributeQueryProfileConfiguration.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/AttributeQueryProfileConfiguration.java
index e7ab8ed7f..3405c8753 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/AttributeQueryProfileConfiguration.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/AttributeQueryProfileConfiguration.java
@@ -28,6 +28,9 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public class AttributeQueryProfileConfiguration extends AbstractSAML2AssertionProducingProfileConfiguration
         implements net.shibboleth.saml.saml2.profile.config.AttributeQueryProfileConfiguration {
     
+    /** Name of profile counter. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = "net.shibboleth.idp.profiles.sam2.query.attribute";
+    
     /** Constructor. */
     public AttributeQueryProfileConfiguration() {
         this(PROFILE_ID);
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/BrowserSSOProfileConfiguration.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/BrowserSSOProfileConfiguration.java
index a04fbf72b..f9938c305 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/BrowserSSOProfileConfiguration.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/BrowserSSOProfileConfiguration.java
@@ -59,6 +59,9 @@ public class BrowserSSOProfileConfiguration extends AbstractSAML2AssertionProduc
         implements AuthenticationProfileConfiguration, AttributeResolvingProfileConfiguration,
             net.shibboleth.idp.saml.saml2.profile.config.BrowserSSOProfileConfiguration {
     
+    /** Name of profile counter. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = "net.shibboleth.idp.profiles.saml2.sso.browser";
+    
     /** Whether attributes should be resolved in the course of the profile. */
     @Nonnull private Predicate<ProfileRequestContext> resolveAttributesPredicate;
 
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/ECPProfileConfiguration.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/ECPProfileConfiguration.java
index 3e5307cf2..e87a05a6e 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/ECPProfileConfiguration.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/ECPProfileConfiguration.java
@@ -39,6 +39,9 @@ import net.shibboleth.shared.primitive.StringSupport;
 public class ECPProfileConfiguration extends BrowserSSOProfileConfiguration 
         implements net.shibboleth.saml.saml2.profile.config.ECPProfileConfiguration {
 
+    /** Name of profile counter. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = "net.shibboleth.idp.profiles.saml2.sso.ecp";
+
     /** Lookup function to supply Local error events to handle without a SOAP fault. */
     @Nonnull private Function<ProfileRequestContext,Set<String>> localEventsLookupStrategy;
         
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/SingleLogoutProfileConfiguration.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/SingleLogoutProfileConfiguration.java
index 51bb4e336..526c26a61 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/SingleLogoutProfileConfiguration.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/saml2/profile/config/impl/SingleLogoutProfileConfiguration.java
@@ -43,6 +43,9 @@ import net.shibboleth.shared.primitive.StringSupport;
 public class SingleLogoutProfileConfiguration extends AbstractSAML2ArtifactAwareProfileConfiguration
         implements net.shibboleth.saml.saml2.profile.config.SingleLogoutProfileConfiguration {
 
+    /** Name of profile counter. */
+    @Nonnull @NotEmpty public static final String PROFILE_COUNTER = "net.shibboleth.idp.profiles.saml2.logout";
+
     /** Predicate used to determine if SOAP-based requests should be signed. */
     @Nonnull private Predicate<MessageContext> signSOAPRequestsPredicate;
     

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list