[java-shib-metadata] branch main updated: IDP-2116 - Add metrics for MetadataResolvers
Scott Cantor
cantor.2 at osu.edu
Tue May 23 16:05:38 UTC 2023
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-shib-metadata.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-metadata.git;a=commit;h=b7d3f2bbdb1c2146d3cbf5035d42fb0bc697fbb5
The following commit(s) were added to refs/heads/main by this push:
new b7d3f2bb IDP-2116 - Add metrics for MetadataResolvers
b7d3f2bb is described below
commit b7d3f2bbdb1c2146d3cbf5035d42fb0bc697fbb5
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue May 23 12:05:35 2023 -0400
IDP-2116 - Add metrics for MetadataResolvers
https://shibboleth.atlassian.net/browse/IDP-2116
Add abstract base for filter parsers.
Wire in type field into metadata resolvers/filters.
---
.../impl/ByReferenceMetadataFilterBridge.java | 4 +-
.../impl/MetadataResolverServiceGaugeSet.java | 74 ++++++++++++++++++++--
.../metadata/impl/ReloadableMetadataResolver.java | 5 ++
.../metadata/AbstractMetadataProviderParser.java | 7 +-
.../metadata/HTTPMetadataProviderParser.java | 4 +-
...rser.java => AbstractMetadataFilterParser.java} | 37 ++++-------
.../metadata/filter/AlgorithmFilterParser.java | 5 +-
.../spring/metadata/filter/ByReferenceParser.java | 5 +-
.../filter/EntityAttributesFilterParser.java | 4 +-
.../metadata/filter/EntityRoleFilterParser.java | 4 +-
.../metadata/filter/NameIDFormatFilterParser.java | 8 +--
.../metadata/filter/NodeProcessingParser.java | 7 +-
.../metadata/filter/PredicateFilterParser.java | 4 +-
.../metadata/filter/RequiredValidUntilParser.java | 4 +-
.../metadata/filter/SchemaValidationParser.java | 5 +-
.../metadata/filter/SignatureValidationParser.java | 5 +-
16 files changed, 124 insertions(+), 58 deletions(-)
diff --git a/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ByReferenceMetadataFilterBridge.java b/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ByReferenceMetadataFilterBridge.java
index b6099229..bbecde9b 100644
--- a/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ByReferenceMetadataFilterBridge.java
+++ b/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ByReferenceMetadataFilterBridge.java
@@ -24,8 +24,8 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.opensaml.core.xml.XMLObject;
+import org.opensaml.saml.metadata.resolver.filter.AbstractMetadataFilter;
import org.opensaml.saml.metadata.resolver.filter.FilterException;
-import org.opensaml.saml.metadata.resolver.filter.MetadataFilter;
import org.opensaml.saml.metadata.resolver.filter.MetadataFilterChain;
import org.opensaml.saml.metadata.resolver.filter.MetadataFilterContext;
import org.opensaml.saml.metadata.resolver.filter.impl.ByReferenceMetadataFilter;
@@ -40,7 +40,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
* This is a bridge filter that uses Spring to locate extant {@link ByReferenceMetadataFilter}
* objects to run.
*/
-public class ByReferenceMetadataFilterBridge implements MetadataFilter {
+public class ByReferenceMetadataFilterBridge extends AbstractMetadataFilter {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(ByReferenceMetadataFilterBridge.class);
diff --git a/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/MetadataResolverServiceGaugeSet.java b/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/MetadataResolverServiceGaugeSet.java
index 4a2c9911..3b97a6d1 100644
--- a/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/MetadataResolverServiceGaugeSet.java
+++ b/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/MetadataResolverServiceGaugeSet.java
@@ -18,9 +18,11 @@ package net.shibboleth.idp.saml.metadata.impl;
import java.time.Instant;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
+import java.util.stream.Collectors;
import javax.annotation.Nonnull;
@@ -28,12 +30,16 @@ import org.opensaml.saml.metadata.resolver.BatchMetadataResolver;
import org.opensaml.saml.metadata.resolver.ChainingMetadataResolver;
import org.opensaml.saml.metadata.resolver.MetadataResolver;
import org.opensaml.saml.metadata.resolver.RefreshableMetadataResolver;
+import org.opensaml.saml.metadata.resolver.RemoteMetadataResolver;
+import org.opensaml.saml.metadata.resolver.filter.MetadataFilter;
+import org.opensaml.saml.metadata.resolver.filter.MetadataFilterChain;
import org.slf4j.Logger;
import com.codahale.metrics.Gauge;
import com.codahale.metrics.MetricFilter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.MetricSet;
+import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder;
@@ -58,7 +64,7 @@ public class MetadataResolverServiceGaugeSet extends ReloadableServiceGaugeSet<M
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(MetadataResolverServiceGaugeSet.class);
-// Checkstyle: MethodLength OFF
+// Checkstyle: MethodLength|AnonInnerLength OFF
/**
* Constructor.
*
@@ -155,8 +161,66 @@ public class MetadataResolverServiceGaugeSet extends ReloadableServiceGaugeSet<M
});
}
});
+
+ getMetricMap().put(
+ MetricRegistry.name(metricName, "type"),
+ new Gauge<Map<String,String>>() {
+ public Map<String,String> getValue() {
+ return valueGetter(new BiConsumer<Builder<String,String>, MetadataResolver>() {
+ public void accept(final Builder<String,String> mapBuilder,
+ final MetadataResolver resolver) {
+ if (resolver.getType() != null) {
+ mapBuilder.put(resolver.getId(), resolver.getType());
+ }
+ };
+ });
+ }
+ });
+
+ getMetricMap().put(
+ MetricRegistry.name(metricName, "uri"),
+ new Gauge<Map<String,String>>() {
+ public Map<String,String> getValue() {
+ return valueGetter(new BiConsumer<Builder<String,String>, MetadataResolver>() {
+ public void accept(final Builder<String,String> mapBuilder,
+ final MetadataResolver resolver) {
+ if (resolver instanceof RemoteMetadataResolver remote) {
+ final String uri = remote.getMetadataURI();
+ if (uri != null) {
+ mapBuilder.put(resolver.getId(), remote.getMetadataURI());
+ }
+ }
+ };
+ });
+ }
+ });
+
+ getMetricMap().put(
+ MetricRegistry.name(metricName, "filters"),
+ new Gauge<Map<String,Collection<String>>>() {
+ public Map<String,Collection<String>> getValue() {
+ return valueGetter(new BiConsumer<Builder<String,Collection<String>>, MetadataResolver>() {
+ public void accept(final Builder<String,Collection<String>> mapBuilder,
+ final MetadataResolver resolver) {
+ final MetadataFilter filter = resolver.getMetadataFilter();
+ if (filter instanceof MetadataFilterChain chaining) {
+ mapBuilder.put(resolver.getId(),
+ chaining.getFilters().stream()
+ .map(MetadataFilter::getType)
+ .filter(Predicates.notNull())
+ .collect(Collectors.toUnmodifiableList()));
+ } else if (filter != null) {
+ final String type = filter.getType();
+ if (type != null) {
+ mapBuilder.put(resolver.getId(), CollectionSupport.singletonList(type));
+ }
+ }
+ };
+ });
+ }
+ });
}
-// Checkstyle: MethodLength ON
+// Checkstyle: MethodLength|AnonInnerLength ON
/**
* Extract the error message to report out.
@@ -246,9 +310,8 @@ public class MetadataResolverServiceGaugeSet extends ReloadableServiceGaugeSet<M
*/
@Nonnull @Unmodifiable @NotLive private List<MetadataResolver> getAllChildren(
@Nonnull final ChainingMetadataResolver parent) {
- final ArrayList<MetadataResolver> result = new ArrayList<>(1+ parent.getResolvers().size());
- // Add ourselves
- result.add(parent);
+ final ArrayList<MetadataResolver> result = new ArrayList<>(parent.getResolvers().size());
+
for (final MetadataResolver child: parent.getResolvers()) {
if (child instanceof ChainingMetadataResolver) {
result.addAll(getAllChildren((ChainingMetadataResolver) child));
@@ -256,6 +319,7 @@ public class MetadataResolverServiceGaugeSet extends ReloadableServiceGaugeSet<M
result.add(child);
}
}
+
return CollectionSupport.copyToList(result);
}
diff --git a/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ReloadableMetadataResolver.java b/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ReloadableMetadataResolver.java
index cd5cd99d..58fb8379 100644
--- a/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ReloadableMetadataResolver.java
+++ b/shib-metadata-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ReloadableMetadataResolver.java
@@ -121,5 +121,10 @@ public class ReloadableMetadataResolver extends AbstractIdentifiableInitializabl
public void setMetadataFilter(@Nullable final MetadataFilter newFilter) {
throw new UnsupportedOperationException("Cannot set Metadata filter");
}
+
+ /** {@inheritDoc} */
+ @Nullable public String getType() {
+ return null;
+ }
}
\ No newline at end of file
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java
index a4d83e53..a9d8bbf7 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractMetadataProviderParser.java
@@ -180,6 +180,11 @@ public abstract class AbstractMetadataProviderParser extends AbstractCustomBeanD
builder.setLazyInit(true);
builder.addPropertyValue("id", StringSupport.trimOrNull(element.getAttributeNS(null, "id")));
+
+ final QName resolverType = DOMTypeSupport.getXSIType(element);
+ if (resolverType != null) {
+ builder.addPropertyValue("type", resolverType.getLocalPart());
+ }
if (isPresentNotChaining(element, "failFastInitialization")) {
builder.addPropertyValue("failFastInitialization",
@@ -195,7 +200,7 @@ public abstract class AbstractMetadataProviderParser extends AbstractCustomBeanD
builder.addPropertyReference("activationCondition",
AttributeSupport.ensureAttributeValue(element, null, "activationConditionRef"));
}
-
+
processPredicateOptions(element, parserContext, builder);
final List<Element> filters =
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProviderParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProviderParser.java
index 96414875..7960e0f7 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProviderParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProviderParser.java
@@ -38,7 +38,7 @@ import net.shibboleth.spring.http.HttpClientFactoryBean;
public abstract class HTTPMetadataProviderParser extends AbstractReloadingMetadataProviderParser {
/** Default caching type. */
- @Nonnull private static final Class<?> DEFAULT_CACHING_CLASS = HttpClientFactoryBean.class;
+ @Nonnull private static final Class<?> DEFAULT_CLIENT_CLASS = HttpClientFactoryBean.class;
/** Logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(HTTPMetadataProviderParser.class);
@@ -105,7 +105,7 @@ public abstract class HTTPMetadataProviderParser extends AbstractReloadingMetada
@Nullable final BeanDefinition httpClientSecurityParameters) {
return HTTPMetadataProvidersParserSupport.buildCommonClientBuilder(element, parserContext,
- HTTPMetadataProviderParser.DEFAULT_CACHING_CLASS, httpClientSecurityParametersRef,
+ HTTPMetadataProviderParser.DEFAULT_CLIENT_CLASS, httpClientSecurityParametersRef,
httpClientSecurityParameters).getBeanDefinition();
}
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/RequiredValidUntilParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/AbstractMetadataFilterParser.java
similarity index 58%
copy from shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/RequiredValidUntilParser.java
copy to shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/AbstractMetadataFilterParser.java
index 2b9c6d9f..aa772d6f 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/RequiredValidUntilParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/AbstractMetadataFilterParser.java
@@ -17,45 +17,36 @@
package net.shibboleth.spring.metadata.filter;
+
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
-import org.opensaml.saml.metadata.resolver.filter.impl.RequiredValidUntilFilter;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
-import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
+import net.shibboleth.shared.xml.DOMTypeSupport;
-/**
- * Parser for a <RequiredValidUntil> filter.
+/**
+ * Abstract base class for filter parsers.
+ *
+ * @since 5.0.0
*/
-public class RequiredValidUntilParser extends AbstractCustomBeanDefinitionParser {
-
- /** Element name. */
- @Nonnull public static final QName TYPE_NAME =
- new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE, "RequiredValidUntil");
-
- /** {@inheritDoc} */
- @Override
- @Nonnull protected Class<?> getBeanClass(@Nonnull final Element element) {
- // IDP-693 maxValidityInterval is a duration or a value in seconds - so we need a factory
- return RequiredValidUntilFilter.class;
- }
+public abstract class AbstractMetadataFilterParser extends AbstractCustomBeanDefinitionParser {
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
- if (element.hasAttributeNS(null, "maxValidityInterval")) {
- builder.addPropertyValue("maxValidityInterval", element.getAttributeNS(null, "maxValidityInterval"));
+ builder.setInitMethodName("initialize");
+ builder.setDestroyMethodName("destroy");
+
+ final QName filterType = DOMTypeSupport.getXSIType(element);
+ if (filterType != null) {
+ builder.addPropertyValue("type", filterType.getLocalPart());
}
+
}
- /** {@inheritDoc} */
- @Override protected boolean shouldGenerateId() {
- return true;
- }
-
}
\ No newline at end of file
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/AlgorithmFilterParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/AlgorithmFilterParser.java
index 80e0f62b..a022fd28 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/AlgorithmFilterParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/AlgorithmFilterParser.java
@@ -44,7 +44,6 @@ import org.w3c.dom.Element;
import net.shibboleth.shared.logic.ScriptedPredicate;
import net.shibboleth.shared.primitive.LoggerFactory;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.xml.ElementSupport;
import net.shibboleth.spring.ScriptTypeBeanParser;
import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
@@ -54,7 +53,7 @@ import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
*
* @since 4.0.0
*/
-public class AlgorithmFilterParser extends AbstractCustomBeanDefinitionParser {
+public class AlgorithmFilterParser extends AbstractMetadataFilterParser {
/** Element name. */
@Nonnull public static final QName TYPE_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
@@ -74,6 +73,8 @@ public class AlgorithmFilterParser extends AbstractCustomBeanDefinitionParser {
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
+ super.doParse(element, parserContext, builder);
+
final Unmarshaller digestUnmarshaller = XMLObjectSupport.getUnmarshaller(DigestMethod.DEFAULT_ELEMENT_NAME);
final Unmarshaller signingUnmarshaller =XMLObjectSupport.getUnmarshaller(SigningMethod.DEFAULT_ELEMENT_NAME);
final Unmarshaller encryptionUnmarshaller =
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/ByReferenceParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/ByReferenceParser.java
index e6ab9564..d7b799ee 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/ByReferenceParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/ByReferenceParser.java
@@ -32,7 +32,6 @@ import org.springframework.beans.factory.support.ManagedMap;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.spring.util.SpringSupport;
import net.shibboleth.shared.xml.ElementSupport;
import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
@@ -40,7 +39,7 @@ import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
/**
* Parser for a <ByReference> filter.
*/
-public class ByReferenceParser extends AbstractCustomBeanDefinitionParser {
+public class ByReferenceParser extends AbstractMetadataFilterParser {
/** Element name. */
@Nonnull public static final QName TYPE_NAME =
@@ -55,6 +54,8 @@ public class ByReferenceParser extends AbstractCustomBeanDefinitionParser {
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
+ super.doParse(element, parserContext, builder);
+
builder.setLazyInit(false);
final List<Element> children = ElementSupport.getChildElements(element,
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/EntityAttributesFilterParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/EntityAttributesFilterParser.java
index 2b3dfd7b..21b93d65 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/EntityAttributesFilterParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/EntityAttributesFilterParser.java
@@ -42,13 +42,12 @@ import org.w3c.dom.Element;
import net.shibboleth.shared.logic.ScriptedPredicate;
import net.shibboleth.shared.primitive.LoggerFactory;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.xml.ElementSupport;
import net.shibboleth.spring.ScriptTypeBeanParser;
import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
/** Parser for a <EntityAttributes> filter. */
-public class EntityAttributesFilterParser extends AbstractCustomBeanDefinitionParser {
+public class EntityAttributesFilterParser extends AbstractMetadataFilterParser {
/** Element name. */
@Nonnull public static final QName TYPE_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
@@ -67,6 +66,7 @@ public class EntityAttributesFilterParser extends AbstractCustomBeanDefinitionPa
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
+ super.doParse(element, parserContext, builder);
final Unmarshaller unmarshaller = XMLObjectSupport.getUnmarshaller(Attribute.DEFAULT_ELEMENT_NAME);
if (unmarshaller == null) {
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/EntityRoleFilterParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/EntityRoleFilterParser.java
index 370f4c78..749b201d 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/EntityRoleFilterParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/EntityRoleFilterParser.java
@@ -28,7 +28,6 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.spring.util.SpringSupport;
import net.shibboleth.shared.xml.ElementSupport;
import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
@@ -36,7 +35,7 @@ import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
/**
* Parser for a <EntityRolet> filter.
*/
-public class EntityRoleFilterParser extends AbstractCustomBeanDefinitionParser {
+public class EntityRoleFilterParser extends AbstractMetadataFilterParser {
/** Element name. */
@Nonnull public static final QName TYPE_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
@@ -51,6 +50,7 @@ public class EntityRoleFilterParser extends AbstractCustomBeanDefinitionParser {
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
+ super.doParse(element, parserContext, builder);
final List<QName> retainedRoles = new ArrayList<>();
final List<Element> retainedRoleElems =
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/NameIDFormatFilterParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/NameIDFormatFilterParser.java
index 021891a8..a733380b 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/NameIDFormatFilterParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/NameIDFormatFilterParser.java
@@ -34,14 +34,13 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
import net.shibboleth.shared.logic.ScriptedPredicate;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.spring.util.SpringSupport;
import net.shibboleth.shared.xml.ElementSupport;
import net.shibboleth.spring.ScriptTypeBeanParser;
import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
/** Parser for a <NameIDFormat> filter. */
-public class NameIDFormatFilterParser extends AbstractCustomBeanDefinitionParser {
+public class NameIDFormatFilterParser extends AbstractMetadataFilterParser {
/** Element name. */
@Nonnull public static final QName TYPE_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
@@ -57,9 +56,8 @@ public class NameIDFormatFilterParser extends AbstractCustomBeanDefinitionParser
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
-
- builder.setInitMethodName("initialize");
- builder.setDestroyMethodName("destroy");
+ super.doParse(element, parserContext, builder);
+
builder.setLazyInit(true);
if (element.hasAttributeNS(null, "removeExistingFormats")) {
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/NodeProcessingParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/NodeProcessingParser.java
index 84fdbde0..e0206a5a 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/NodeProcessingParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/NodeProcessingParser.java
@@ -27,7 +27,6 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.spring.util.SpringSupport;
import net.shibboleth.shared.xml.ElementSupport;
import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
@@ -36,7 +35,7 @@ import net.shibboleth.spring.metadata.MetadataNamespaceHandler;
/**
* Parser for a <NodeProcessing> filter.
*/
-public class NodeProcessingParser extends AbstractCustomBeanDefinitionParser {
+public class NodeProcessingParser extends AbstractMetadataFilterParser {
/** Element name. */
@Nonnull public static final QName TYPE_NAME =
@@ -51,8 +50,8 @@ public class NodeProcessingParser extends AbstractCustomBeanDefinitionParser {
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
- builder.setInitMethodName("initialize");
- builder.setDestroyMethodName("destroy");
+ super.doParse(element, parserContext, builder);
+
builder.setLazyInit(true);
final List<Element> children =
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java
index 8e88289f..3cb096b2 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java
@@ -42,7 +42,6 @@ import net.shibboleth.shared.logic.PredicateSupport;
import net.shibboleth.shared.logic.ScriptedPredicate;
import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.primitive.StringSupport;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.spring.util.SpringSupport;
import net.shibboleth.shared.xml.AttributeSupport;
import net.shibboleth.shared.xml.ElementSupport;
@@ -52,7 +51,7 @@ import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
/**
* Parser for a <Predicate> filter.
*/
-public class PredicateFilterParser extends AbstractCustomBeanDefinitionParser {
+public class PredicateFilterParser extends AbstractMetadataFilterParser {
/** Element name. */
@Nonnull public static final QName TYPE_NAME =
@@ -87,6 +86,7 @@ public class PredicateFilterParser extends AbstractCustomBeanDefinitionParser {
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
+ super.doParse(element, parserContext, builder);
if (element.hasAttributeNS(null, "removeEmptyEntitiesDescriptors")) {
builder.addPropertyValue("removeEmptyEntitiesDescriptors", SpringSupport.getStringValueAsBoolean(
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/RequiredValidUntilParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/RequiredValidUntilParser.java
index 2b9c6d9f..9f6ea983 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/RequiredValidUntilParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/RequiredValidUntilParser.java
@@ -25,13 +25,12 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
/**
* Parser for a <RequiredValidUntil> filter.
*/
-public class RequiredValidUntilParser extends AbstractCustomBeanDefinitionParser {
+public class RequiredValidUntilParser extends AbstractMetadataFilterParser {
/** Element name. */
@Nonnull public static final QName TYPE_NAME =
@@ -47,6 +46,7 @@ public class RequiredValidUntilParser extends AbstractCustomBeanDefinitionParser
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
+ super.doParse(element, parserContext, builder);
if (element.hasAttributeNS(null, "maxValidityInterval")) {
builder.addPropertyValue("maxValidityInterval", element.getAttributeNS(null, "maxValidityInterval"));
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SchemaValidationParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SchemaValidationParser.java
index f817c505..314f62bf 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SchemaValidationParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SchemaValidationParser.java
@@ -25,14 +25,13 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.xml.AttributeSupport;
import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
/**
* Parser for a <SchemaValidation> filter.
*/
-public class SchemaValidationParser extends AbstractCustomBeanDefinitionParser {
+public class SchemaValidationParser extends AbstractMetadataFilterParser {
/** Element name. */
@Nonnull public static final QName TYPE_NAME =
@@ -47,6 +46,8 @@ public class SchemaValidationParser extends AbstractCustomBeanDefinitionParser {
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
+ super.doParse(element, parserContext, builder);
+
if (element.hasAttributeNS(null, "schemaBuilderRef")) {
builder.addConstructorArgReference(
AttributeSupport.ensureAttributeValue(element, null, "schemaBuilderRef"));
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SignatureValidationParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SignatureValidationParser.java
index 0f9ec8bb..af8a977b 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SignatureValidationParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/SignatureValidationParser.java
@@ -46,7 +46,6 @@ import org.w3c.dom.Element;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.primitive.StringSupport;
-import net.shibboleth.shared.spring.custom.AbstractCustomBeanDefinitionParser;
import net.shibboleth.shared.spring.util.SpringSupport;
import net.shibboleth.shared.xml.AttributeSupport;
import net.shibboleth.shared.xml.ElementSupport;
@@ -55,7 +54,7 @@ import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
/**
* Parser for xsi:type="SignatureValidation".
*/
-public class SignatureValidationParser extends AbstractCustomBeanDefinitionParser {
+public class SignatureValidationParser extends AbstractMetadataFilterParser {
/** Schema type name. */
@Nonnull public static final QName TYPE_NAME =
@@ -78,6 +77,8 @@ public class SignatureValidationParser extends AbstractCustomBeanDefinitionParse
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
+ super.doParse(element, parserContext, builder);
+
final boolean hasEngineRef = element.hasAttributeNS(null, "trustEngineRef");
final boolean hasCertFile = element.hasAttributeNS(null, "certificateFile");
final List<Element> publicKeys = ElementSupport.getChildElements(element, PUBLIC_KEY);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list