[java-identity-provider] branch master updated: IDP-1177 - Centralize deprecation warnings through dedicated function
Scott Cantor
cantor.2 at osu.edu
Thu Jun 8 21:23:37 EDT 2017
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch master
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=34bd5abf4b40cf1537b78bc28f6343d08b2450f2
The following commit(s) were added to refs/heads/master by this push:
new 34bd5ab IDP-1177 - Centralize deprecation warnings through dedicated function
34bd5ab is described below
commit 34bd5abf4b40cf1537b78bc28f6343d08b2450f2
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Jun 8 21:23:35 2017 -0400
IDP-1177 - Centralize deprecation warnings through dedicated function
https://issues.shibboleth.net/jira/browse/IDP-1177
Further sweep of IdP for existing deprecations.
---
.../resolver/ad/impl/DelegatedWorkContext.java | 30 ++++---
.../spring/ResolverPluginDependencyParser.java | 10 ++-
.../resolver/spring/dc/impl/CacheConfigParser.java | 18 ++++-
.../dc/impl/StoredIDDataConnectorParser.java | 6 +-
.../dc/ldap/impl/LDAPDataConnectorParser.java | 8 +-
.../dc/rdbms/impl/RDBMSDataConnectorParser.java | 8 +-
.../resolver/spring/dc/CacheConfigParserTest.java | 10 +--
.../relyingparty/impl/RelyingPartyGroupParser.java | 7 +-
.../metadata/filter/impl/ChainingParser.java | 10 ++-
.../filter/impl/RequiredValidUntilFactoryBean.java | 13 +--
.../filter/impl/SignatureValidationParser.java | 9 ++-
.../AbstractDynamicHTTPMetadataProviderParser.java | 21 ++---
.../metadata/impl/HTTPMetadataProviderParser.java | 43 +++++-----
.../impl/HTTPMetadataProvidersParserSupport.java | 94 +++++++++++++---------
.../impl/InlineMetadataProviderParser.java | 6 +-
.../impl/ResourceBackedMetadataProviderParser.java | 51 ++++++------
16 files changed, 213 insertions(+), 131 deletions(-)
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DelegatedWorkContext.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DelegatedWorkContext.java
index 42ba92b..60e4a56 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DelegatedWorkContext.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/DelegatedWorkContext.java
@@ -31,26 +31,32 @@ import net.shibboleth.idp.attribute.resolver.ResolvedDataConnector;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolverWorkContext;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import org.opensaml.messaging.context.BaseContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/** A delegate for {@link AttributeResolverWorkContext}.
- * This is only here because in a moment of madness we pushed the work context into
+/**
+ * A delegate for {@link AttributeResolverWorkContext}.
+ *
+ * <p>This is only here because in a moment of madness we pushed the work context into
* the scripted definitions. This preserves the function while making it obvious that
- * we don't want people to use it.
- * @deprecated(Deprecated function)*/
+ * we don't want people to use it.</p>
+ *
+ * @deprecated
+ */
@Deprecated public class DelegatedWorkContext extends BaseContext {
- /** log. */
- private final Logger log = LoggerFactory.getLogger(DelegatedWorkContext.class);
+ /** Class logger. */
+ @Nonnull private final Logger log = LoggerFactory.getLogger(DelegatedWorkContext.class);
/** The delegate. */
- private final AttributeResolverWorkContext delegate;
+ @Nonnull private final AttributeResolverWorkContext delegate;
/** The log prefix. */
- private final String logPrefix;
+ @Nullable private final String logPrefix;
/**
* Constructor.
@@ -58,7 +64,7 @@ import org.slf4j.LoggerFactory;
* @param parent the value to be delegated.
* @param prefix the log prefix of the calling scripted definition.
*/
- public DelegatedWorkContext(final AttributeResolverWorkContext parent, final String prefix) {
+ public DelegatedWorkContext(@Nonnull final AttributeResolverWorkContext parent, @Nullable final String prefix) {
delegate = parent;
setParent(delegate.getParent());
setAutoCreateSubcontexts(parent.isAutoCreateSubcontexts());
@@ -72,6 +78,7 @@ import org.slf4j.LoggerFactory;
*/
@Nonnull @NonnullElements @Unmodifiable public Map<String, ResolvedAttributeDefinition>
getResolvedIdPAttributeDefinitions() {
+ DeprecationSupport.warnOnce(ObjectType.CLASS, AttributeResolverWorkContext.class.getName(), null, null);
log.error("'{}' Use of workContext.getResolvedIdPAttributeDefinitions()"
+ " is deprecated and will cause instability", logPrefix);
return delegate.getResolvedIdPAttributeDefinitions();
@@ -86,6 +93,7 @@ import org.slf4j.LoggerFactory;
*/
public void recordAttributeDefinitionResolution(@Nonnull final AttributeDefinition definition,
@Nullable final IdPAttribute attribute) throws ResolutionException {
+ DeprecationSupport.warnOnce(ObjectType.CLASS, AttributeResolverWorkContext.class.getName(), null, null);
log.error("'{}' Use of workContext.getResolvedIdPAttributeDefinitions()"
+ " is deprecated and will cause instability", logPrefix);
delegate.recordAttributeDefinitionResolution(definition, attribute);
@@ -97,6 +105,7 @@ import org.slf4j.LoggerFactory;
* @return what the delegate does.
*/
@Nonnull @NonnullElements @Unmodifiable public Map<String, ResolvedDataConnector> getResolvedDataConnectors() {
+ DeprecationSupport.warnOnce(ObjectType.CLASS, AttributeResolverWorkContext.class.getName(), null, null);
log.error("'{}' Use of workContext.getResolvedDataConnectors() is deprecated and will cause instability",
logPrefix);
return delegate.getResolvedDataConnectors();
@@ -111,6 +120,7 @@ import org.slf4j.LoggerFactory;
*/
public void recordDataConnectorResolution(@Nonnull final DataConnector connector,
@Nullable final Map<String, IdPAttribute> attributes) throws ResolutionException {
+ DeprecationSupport.warnOnce(ObjectType.CLASS, AttributeResolverWorkContext.class.getName(), null, null);
log.error(
"'{}' Use of workContext.recordDataConnectorResolution() is deprecated and will cause instability",
logPrefix);
@@ -126,9 +136,11 @@ import org.slf4j.LoggerFactory;
*/
public void recordFailoverResolution(@Nonnull final DataConnector failedConnector,
@Nonnull final DataConnector failoverConnector) throws ResolutionException {
+ DeprecationSupport.warnOnce(ObjectType.CLASS, AttributeResolverWorkContext.class.getName(), null, null);
log.error("'{}' Use of workContext.recordFailoverResolution() is deprecated and will cause instability",
logPrefix);
delegate.recordFailoverResolution(failedConnector, failoverConnector);
}
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ResolverPluginDependencyParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ResolverPluginDependencyParser.java
index 633ea49..aae8cd5 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ResolverPluginDependencyParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ResolverPluginDependencyParser.java
@@ -25,7 +25,9 @@ import net.shibboleth.idp.attribute.resolver.ResolverPluginDependency;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.attribute.resolver.spring.impl.InputAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.InputDataConnectorParser;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,14 +48,18 @@ public class ResolverPluginDependencyParser extends AbstractSingleBeanDefinition
/** {@inheritDoc} */
@Override protected Class<? extends ResolverPluginDependency> getBeanClass(@Nullable final Element element) {
- log.warn("<Dependency> is deprecated, replace with " + InputDataConnectorParser.ELEMENT_NAME.getLocalPart()
- + " or " + InputAttributeDefinitionParser.ELEMENT_NAME.getLocalPart());
return ResolverPluginDependency.class;
}
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
+
+ DeprecationSupport.warnOnce(ObjectType.ELEMENT, ELEMENT_NAME.toString(),
+ parserContext.getReaderContext().getResource().getDescription(),
+ InputDataConnectorParser.ELEMENT_NAME.toString() + " or "
+ + InputAttributeDefinitionParser.ELEMENT_NAME.toString());
+
final String pluginId = StringSupport.trimOrNull(config.getAttributeNS(null, "ref"));
log.info("Parsing configuration for {} with pluginId: {}", config.getLocalName(), pluginId);
builder.addConstructorArgValue(pluginId);
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java
index ace0f69..4d6cbd9 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java
@@ -28,6 +28,8 @@ import javax.xml.namespace.QName;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.AttributeSupport;
import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
@@ -37,6 +39,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
import com.google.common.cache.Cache;
@@ -85,16 +88,21 @@ public class CacheConfigParser {
configElement = config;
}
+// Checkstyle: CyclomaticComplexity OFF
/**
* Creates a new cache bean definition from a v2 XML configuration.
*
+ * @param parserContext bean parser context
+ *
* @return cache bean definition
*/
- @Nonnull public BeanDefinition createCache() {
+ @Nonnull public BeanDefinition createCache(@Nonnull final ParserContext parserContext) {
final String defaultCache = AttributeSupport.getAttributeValue(configElement, new QName("cacheResults"));
if (defaultCache != null) {
- log.warn("The cacheResults attribute is no longer supported, please create a ResultCache element");
+ DeprecationSupport.warnOnce(ObjectType.ATTRIBUTE, "cacheResults",
+ parserContext != null ? parserContext.getReaderContext().getResource().getDescription() : null,
+ RESULT_CACHE_RESOLVER.toString());
return null;
}
@@ -112,7 +120,9 @@ public class CacheConfigParser {
final String elementTimeToLive =
AttributeSupport.getAttributeValue(cacheElement, new QName("elementTimeToLive"));
if (null != elementTimeToLive) {
- log.warn("ResultCache: Attribute 'elementTimeToLive' is deprecated, consider using 'expireAfterAccess'");
+ DeprecationSupport.warnOnce(ObjectType.ATTRIBUTE, "elementTimeToLive",
+ parserContext != null ? parserContext.getReaderContext().getResource().getDescription() : null,
+ "expireAfterAccess");
}
final String expireAfterWrite =
AttributeSupport.getAttributeValue(cacheElement, new QName("expireAfterWrite"));
@@ -138,6 +148,7 @@ public class CacheConfigParser {
AttributeSupport.getAttributeValue(cacheElement, new QName("maximumCachedElements")));
return cache.getBeanDefinition();
}
+// Checkstyle: CyclomaticComplexity ON
/** Helper function to return size provided with a suitable default.
*
@@ -235,5 +246,4 @@ public class CacheConfigParser {
return StringSupport.trimOrNull(ElementSupport.getElementContentAsString(beanResultCache.get(0)));
}
-
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIDDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIDDataConnectorParser.java
index 219b7ac..d1f0f9d 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIDDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIDDataConnectorParser.java
@@ -25,6 +25,8 @@ import net.shibboleth.ext.spring.context.FilesystemGenericApplicationContext;
import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.resolver.impl.StoredIDDataConnector;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.AttributeSupport;
@@ -67,8 +69,8 @@ public class StoredIDDataConnectorParser extends BaseComputedIDDataConnectorPars
final String springResources = AttributeSupport.getAttributeValue(config, new QName("springResources"));
final String beanDataSource = ManagedConnectionParser.getBeanDataSourceID(config);
if (springResources != null) {
- log.warn("{} springResources is deprecated for the StoredIDDataConnector"
- + ", consider using BeanManagedConnection", getLogPrefix());
+ DeprecationSupport.warnOnce(ObjectType.ATTRIBUTE, "springResources in StoredIDDataConnector",
+ parserContext.getReaderContext().getResource().getDescription(), "<BeanManagedConnection> element");
builder.addPropertyValue("dataSource", getDataSource(springResources.split(";")));
} else if (beanDataSource != null) {
builder.addPropertyReference("dataSource", beanDataSource);
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
index 6bccdf9..e7ed570 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
@@ -215,7 +215,7 @@ public class LDAPDataConnectorParser extends AbstractWarningDataConnectorParser
if (null != resultCacheBeanID) {
builder.addPropertyReference("resultsCache", resultCacheBeanID);
} else {
- builder.addPropertyValue("resultsCache", v2Parser.createCache());
+ builder.addPropertyValue("resultsCache", v2Parser.createCache(parserContext));
}
builder.setInitMethodName("initialize");
@@ -705,11 +705,13 @@ public class LDAPDataConnectorParser extends AbstractWarningDataConnectorParser
/**
* Create a results cache bean definition. See {@link CacheConfigParser}.
*
+ * @param parserContext bean parser context
+ *
* @return results cache bean definition
*/
- @Nullable public BeanDefinition createCache() {
+ @Nullable public BeanDefinition createCache(@Nonnull final ParserContext parserContext) {
final CacheConfigParser parser = new CacheConfigParser(configElement);
- return parser.createCache();
+ return parser.createCache(parserContext);
}
/** The parent's log prefix.
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
index 8387222..3417cad 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
@@ -131,7 +131,7 @@ public class RDBMSDataConnectorParser extends AbstractWarningDataConnectorParser
if (null != resultCacheBeanID) {
builder.addPropertyReference("resultsCache", resultCacheBeanID);
} else {
- builder.addPropertyValue("resultsCache", v2Parser.createCache());
+ builder.addPropertyValue("resultsCache", v2Parser.createCache(parserContext));
}
builder.setInitMethodName("initialize");
@@ -341,11 +341,13 @@ public class RDBMSDataConnectorParser extends AbstractWarningDataConnectorParser
/**
* Create the results cache. See {@link CacheConfigParser}.
*
+ * @param parserContext bean parser context
+ *
* @return results cache
*/
- @Nullable public BeanDefinition createCache() {
+ @Nullable public BeanDefinition createCache(@Nonnull final ParserContext parserContext) {
final CacheConfigParser parser = new CacheConfigParser(configElement);
- return parser.createCache();
+ return parser.createCache(parserContext);
}
/** The parent parser's log prefix.
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/CacheConfigParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/CacheConfigParserTest.java
index b72e422..e1dfa48 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/CacheConfigParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/CacheConfigParserTest.java
@@ -48,7 +48,7 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
final GenericApplicationContext context = new GenericApplicationContext();
- context.registerBeanDefinition("ElementTTL", ccp.createCache());
+ context.registerBeanDefinition("ElementTTL", ccp.createCache(null));
context.refresh();
context.getBean("ElementTTL", Cache.class);
@@ -63,7 +63,7 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
final GenericApplicationContext context = new GenericApplicationContext();
- context.registerBeanDefinition("Access", ccp.createCache());
+ context.registerBeanDefinition("Access", ccp.createCache(null));
context.refresh();
context.getBean("Access", Cache.class);
@@ -78,7 +78,7 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
final GenericApplicationContext context = new GenericApplicationContext();
- context.registerBeanDefinition("Write", ccp.createCache());
+ context.registerBeanDefinition("Write", ccp.createCache(null));
context.refresh();
context.getBean("Write", Cache.class);
@@ -93,11 +93,11 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
final GenericApplicationContext context = new GenericApplicationContext();
- context.registerBeanDefinition("Write", ccp.createCache());
+ context.registerBeanDefinition("Write", ccp.createCache(null));
context.refresh();
context.getBean("Write", Cache.class);
context.close();
}
-}
+}
\ No newline at end of file
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/impl/RelyingPartyGroupParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/impl/RelyingPartyGroupParser.java
index ea8be4c..dcc164d 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/impl/RelyingPartyGroupParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/impl/RelyingPartyGroupParser.java
@@ -28,6 +28,8 @@ import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataP
import net.shibboleth.idp.profile.spring.relyingparty.metadata.impl.MetadataNamespaceHandler;
import net.shibboleth.idp.profile.spring.relyingparty.security.impl.SecurityNamespaceHandler;
import net.shibboleth.idp.relyingparty.impl.DefaultRelyingPartyConfigurationResolver;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
import org.opensaml.security.x509.tls.impl.BasicClientTLSValidationConfiguration;
@@ -68,7 +70,10 @@ public class RelyingPartyGroupParser extends AbstractSingleBeanDefinitionParser
builder.setInitMethodName("initialize");
builder.setDestroyMethodName("destroy");
- log.warn("<{}> is deprecated and will be removed in a future version.", AbstractMetadataProviderParser.RELYING_PARTY_GROUP_ELEMENT_NAME.getLocalPart());
+ DeprecationSupport.warn(ObjectType.ELEMENT,
+ AbstractMetadataProviderParser.RELYING_PARTY_GROUP_ELEMENT_NAME.toString(),
+ parserContext.getReaderContext().getResource().getDescription(),
+ "via updated RelyingParty configuration");
builder.addPropertyValue("id", "RelyingPartyGroup["
+ parserContext.getReaderContext().getResource().getFilename() + "]");
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/ChainingParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/ChainingParser.java
index bdc1b28..16580dc 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/ChainingParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/ChainingParser.java
@@ -24,6 +24,8 @@ import javax.xml.namespace.QName;
import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
import org.opensaml.saml.metadata.resolver.filter.MetadataFilterChain;
@@ -36,8 +38,9 @@ import org.w3c.dom.Element;
/**
* Parser for a <ChainingFilter> filter.
+ *
+ * @deprecated
*/
- at Deprecated
public class ChainingParser extends AbstractSingleBeanDefinitionParser {
/** Element name. */
@@ -55,8 +58,9 @@ public class ChainingParser extends AbstractSingleBeanDefinitionParser {
/** {@inheritDoc} */
@Override protected void doParse(final Element element, final ParserContext parserContext,
final BeanDefinitionBuilder builder) {
-
- log.warn("Chaining MetadataFilter type is DEPRECATED and will be removed in the next major version");
+
+ DeprecationSupport.warn(ObjectType.XSITYPE, TYPE_NAME.toString(),
+ parserContext.getReaderContext().getResource().getDescription(), null);
final List<Element> children =
ElementSupport.getChildElements(element, AbstractMetadataProviderParser.METADATA_FILTER_ELEMENT_NAME);
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilFactoryBean.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilFactoryBean.java
index da830f6..fb0e9a7 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilFactoryBean.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/RequiredValidUntilFactoryBean.java
@@ -20,6 +20,8 @@ package net.shibboleth.idp.profile.spring.relyingparty.metadata.filter.impl;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
import org.opensaml.saml.metadata.resolver.filter.impl.RequiredValidUntilFilter;
@@ -66,13 +68,12 @@ public class RequiredValidUntilFactoryBean extends AbstractFactoryBean<RequiredV
throw new IllegalArgumentException("Negative durations are not supported");
} else {
// Treat as a Long and seconds.
- final long durationInMs = 1000 * Long.valueOf(maxValidityIntervalDuration);
- log.warn("Numerical duration form is deprecated. The property 'maxValidityInterval'"
- + " on RequiredValidUntil metadata filter should use the duration notation: {}",
- DOMTypeSupport.longToDuration(durationInMs));
- value.setMaxValidityInterval(durationInMs);
+ value.setMaxValidityInterval(1000 * Long.valueOf(maxValidityIntervalDuration));
+ DeprecationSupport.warn(ObjectType.ATTRIBUTE, "maxValidityIntervalDuration (when numeric)",
+ "RequiredValidUntil MetadataFilter", "duration notation");
}
}
return value;
}
-}
+
+}
\ No newline at end of file
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java
index e233c61..fdc657c 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/impl/SignatureValidationParser.java
@@ -27,6 +27,8 @@ import net.shibboleth.ext.spring.util.SpringSupport;
import net.shibboleth.idp.profile.spring.factory.BasicInlineCredentialFactoryBean;
import net.shibboleth.idp.profile.spring.factory.BasicX509CredentialFactoryBean;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -115,7 +117,7 @@ public class SignatureValidationParser extends AbstractSingleBeanDefinitionParse
if (trustEngines.size() > 1) {
log.error("{}: Too many <TrustEngine>s", parserContext.getReaderContext().getResource()
.getDescription());
- throw new BeanCreationException("{}: Too many <TrustEngine>s");
+ throw new BeanCreationException("Too many <TrustEngine>s");
}
final ManagedList<BeanDefinition> engines = SpringSupport.parseCustomElements(trustEngines, parserContext);
@@ -127,9 +129,8 @@ public class SignatureValidationParser extends AbstractSingleBeanDefinitionParse
if (element.hasAttributeNS(null, "requireSignedRoot")) {
builder.addPropertyValue("requireSignedRoot", element.getAttributeNS(null, "requireSignedRoot"));
} else if (element.hasAttributeNS(null, "requireSignedMetadata")) {
- log.warn("{} The 'requireSignedMetadata' attribute is DEPRECATED "
- + "and will be removed from the next major version, use 'requireSignedRoot' instead",
- parserContext.getReaderContext().getResource().getDescription());
+ DeprecationSupport.warn(ObjectType.ATTRIBUTE, "requireSignedMetadata",
+ parserContext.getReaderContext().getResource().getDescription(), "requireSignedRoot");
builder.addPropertyValue("requireSignedRoot", element.getAttributeNS(null, "requireSignedMetadata"));
}
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractDynamicHTTPMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractDynamicHTTPMetadataProviderParser.java
index 9cc33de..c6854b5 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractDynamicHTTPMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/AbstractDynamicHTTPMetadataProviderParser.java
@@ -58,24 +58,27 @@ public abstract class AbstractDynamicHTTPMetadataProviderParser extends Abstract
/** Logger. */
private final Logger log = LoggerFactory.getLogger(AbstractDynamicHTTPMetadataProviderParser.class);
+// Checkstyle: CyclomaticComplexity OFF
/** {@inheritDoc} */
- // Checkstyle: CyclomaticComplexity OFF -- more readable not split up
@Override protected void doNativeParse(final Element element, final ParserContext parserContext,
final BeanDefinitionBuilder builder) {
super.doNativeParse(element, parserContext, builder);
final String tlsTrustEngineRef = StringSupport.trimOrNull(element.getAttributeNS(null, "tlsTrustEngineRef"));
- final Element tlsTrustEngine = ElementSupport.getFirstChildElement(element, HTTPMetadataProvidersParserSupport.TLS_TRUST_ENGINE_ELEMENT_NAME);
- final String httpClientSecurityParametersRef = StringSupport.trimOrNull(element.getAttributeNS(null, "httpClientSecurityParametersRef"));
+ final Element tlsTrustEngine = ElementSupport.getFirstChildElement(element,
+ HTTPMetadataProvidersParserSupport.TLS_TRUST_ENGINE_ELEMENT_NAME);
+ final String httpClientSecurityParametersRef =
+ StringSupport.trimOrNull(element.getAttributeNS(null, "httpClientSecurityParametersRef"));
BeanDefinition httpClientSecurityParameters = null;
if (httpClientSecurityParametersRef != null) {
if (tlsTrustEngine != null || tlsTrustEngineRef != null) {
- log.warn("httpClientSecurityParametersRef overrides setting of tlsTrustEngineRef or of <TrustEngine> subelement");
+ log.warn("httpClientSecurityParametersRef overrides tlsTrustEngineRef or <TrustEngine> subelement");
}
builder.addPropertyReference("httpClientSecurityParameters", httpClientSecurityParametersRef);
} else if (tlsTrustEngine != null || tlsTrustEngineRef != null) {
- httpClientSecurityParameters = HTTPMetadataProvidersParserSupport.parseTLSTrustEngine(tlsTrustEngineRef, tlsTrustEngine, parserContext);
+ httpClientSecurityParameters = HTTPMetadataProvidersParserSupport.parseTLSTrustEngine(
+ tlsTrustEngineRef, tlsTrustEngine, parserContext);
builder.addPropertyValue("httpClientSecurityParameters", httpClientSecurityParameters);
}
@@ -103,7 +106,8 @@ public abstract class AbstractDynamicHTTPMetadataProviderParser extends Abstract
if (element.hasAttributeNS(null, HTTPMetadataProvidersParserSupport.BASIC_AUTH_USER) ||
element.hasAttributeNS(null, HTTPMetadataProvidersParserSupport.BASIC_AUTH_PASSWORD)) {
- builder.addPropertyValue("basicCredentials", HTTPMetadataProvidersParserSupport.buildBasicCredentials(element));
+ builder.addPropertyValue("basicCredentials",
+ HTTPMetadataProvidersParserSupport.buildBasicCredentials(element, parserContext));
}
if (element.hasAttributeNS(null, "supportedContentTypes")) {
@@ -115,8 +119,7 @@ public abstract class AbstractDynamicHTTPMetadataProviderParser extends Abstract
}
}
-
- // Checkstyle: CyclomaticComplexity ON
+// Checkstyle: CyclomaticComplexity ON
/**
* Build the definition of the HTTPClientBuilder which contains all our configuration.
@@ -168,4 +171,4 @@ public abstract class AbstractDynamicHTTPMetadataProviderParser extends Abstract
return clientBuilder.getBeanDefinition();
}
-}
+}
\ No newline at end of file
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProviderParser.java
index 3df7ddb..798a3c2 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProviderParser.java
@@ -17,10 +17,12 @@
package net.shibboleth.idp.profile.spring.relyingparty.metadata.impl;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -36,34 +38,34 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/**
- * Parser for a <FilesystemMetadataProvider>.
+ * Parser for a FilesystemMetadataProvider.
*/
public class HTTPMetadataProviderParser extends AbstractReloadingMetadataProviderParser {
/** Element name. */
- public static final QName ELEMENT_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
+ @Nonnull public static final QName ELEMENT_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
"HTTPMetadataProvider");
/** Default caching type. */
- private static final String DEFAULT_CACHING = "none";
+ @Nonnull @NotEmpty private static final String DEFAULT_CACHING = "none";
/** Logger. */
- private final Logger log = LoggerFactory.getLogger(HTTPMetadataProviderParser.class);
+ @Nonnull private final Logger log = LoggerFactory.getLogger(HTTPMetadataProviderParser.class);
/** {@inheritDoc} */
@Override protected Class<? extends HTTPMetadataResolver> getNativeBeanClass(final Element element) {
return HTTPMetadataResolver.class;
}
+// Checkstyle: CyclomaticComplexity OFF
/** {@inheritDoc} */
- // Checkstyle: CyclomaticComplexity OFF
@Override protected void doNativeParse(final Element element, final ParserContext parserContext,
final BeanDefinitionBuilder builder) {
super.doNativeParse(element, parserContext, builder);
if (element.hasAttributeNS(null, "cacheDuration")) {
- log.error("{}: cacheDuration is not supported", parserContext.getReaderContext().getResource()
- .getDescription());
+ log.error("{}: cacheDuration is not supported",
+ parserContext.getReaderContext().getResource().getDescription());
throw new BeanDefinitionParsingException(new Problem("cacheDuration is not supported", new Location(
parserContext.getReaderContext().getResource())));
}
@@ -76,17 +78,20 @@ public class HTTPMetadataProviderParser extends AbstractReloadingMetadataProvide
}
final String tlsTrustEngineRef = StringSupport.trimOrNull(element.getAttributeNS(null, "tlsTrustEngineRef"));
- final Element tlsTrustEngine = ElementSupport.getFirstChildElement(element, HTTPMetadataProvidersParserSupport.TLS_TRUST_ENGINE_ELEMENT_NAME);
- final String httpClientSecurityParametersRef = StringSupport.trimOrNull(element.getAttributeNS(null, "httpClientSecurityParametersRef"));
+ final Element tlsTrustEngine = ElementSupport.getFirstChildElement(element,
+ HTTPMetadataProvidersParserSupport.TLS_TRUST_ENGINE_ELEMENT_NAME);
+ final String httpClientSecurityParametersRef =
+ StringSupport.trimOrNull(element.getAttributeNS(null, "httpClientSecurityParametersRef"));
BeanDefinition httpClientSecurityParameters = null;
if (httpClientSecurityParametersRef != null) {
if (tlsTrustEngine != null || tlsTrustEngineRef != null) {
- log.warn("httpClientSecurityParametersRef overrides setting of tlsTrustEngineRef or of <TrustEngine> subelement");
+ log.warn("httpClientSecurityParametersRef overrides tlsTrustEngineRef or <TrustEngine> subelement");
}
builder.addPropertyReference("httpClientSecurityParameters", httpClientSecurityParametersRef);
} else if (tlsTrustEngine != null || tlsTrustEngineRef != null) {
- httpClientSecurityParameters = HTTPMetadataProvidersParserSupport.parseTLSTrustEngine(tlsTrustEngineRef, tlsTrustEngine, parserContext);
+ httpClientSecurityParameters = HTTPMetadataProvidersParserSupport.parseTLSTrustEngine(tlsTrustEngineRef,
+ tlsTrustEngine, parserContext);
builder.addPropertyValue("httpClientSecurityParameters", httpClientSecurityParameters);
}
@@ -106,18 +111,19 @@ public class HTTPMetadataProviderParser extends AbstractReloadingMetadataProvide
}
} else {
builder.addConstructorArgValue(buildHttpClient(element, parserContext,
- httpClientSecurityParametersRef, httpClientSecurityParameters));
+ httpClientSecurityParametersRef, httpClientSecurityParameters));
}
- builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, HTTPMetadataProvidersParserSupport.METADATA_URL)));
+ builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null,
+ HTTPMetadataProvidersParserSupport.METADATA_URL)));
- if (element.hasAttributeNS(null, HTTPMetadataProvidersParserSupport.BASIC_AUTH_USER) || element.hasAttributeNS(null, HTTPMetadataProvidersParserSupport.BASIC_AUTH_PASSWORD)) {
+ if (element.hasAttributeNS(null, HTTPMetadataProvidersParserSupport.BASIC_AUTH_USER)
+ || element.hasAttributeNS(null, HTTPMetadataProvidersParserSupport.BASIC_AUTH_PASSWORD)) {
builder.addPropertyValue("basicCredentials",
- HTTPMetadataProvidersParserSupport.buildBasicCredentials(element));
+ HTTPMetadataProvidersParserSupport.buildBasicCredentials(element, parserContext));
}
}
-
- // Checkstyle: CyclomaticComplexity ON
+// Checkstyle: CyclomaticComplexity ON
/**
* Build the definition of the HTTPClientBuilder which contains all our configuration.
@@ -138,4 +144,5 @@ public class HTTPMetadataProviderParser extends AbstractReloadingMetadataProvide
HTTPMetadataProviderParser.DEFAULT_CACHING, httpClientSecurityParametersRef,
httpClientSecurityParameters).getBeanDefinition();
}
-}
+
+}
\ No newline at end of file
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProvidersParserSupport.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProvidersParserSupport.java
index 93549dc..b3dca7b 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProvidersParserSupport.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/HTTPMetadataProvidersParserSupport.java
@@ -27,7 +27,10 @@ import net.shibboleth.idp.profile.spring.relyingparty.metadata.FileCachingHttpCl
import net.shibboleth.idp.profile.spring.relyingparty.metadata.HttpClientFactoryBean;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.InMemoryCachingHttpClientFactoryBean;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.TLSSocketFactoryFactoryBean;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -44,30 +47,30 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/**
+ * Helper class for Spring configuration of HTTP metadata providers.
*/
-public class HTTPMetadataProvidersParserSupport {
- /** Logger. */
- private static final Logger log = LoggerFactory.getLogger(HTTPMetadataProvidersParserSupport.class);
-
+public final class HTTPMetadataProvidersParserSupport {
+
/** BASIC auth username. */
- public static final String BASIC_AUTH_USER = "basicAuthUser";
+ @Nonnull @NotEmpty public static final String BASIC_AUTH_USER = "basicAuthUser";
/** BASIC auth password. */
- public static final String BASIC_AUTH_PASSWORD = "basicAuthPassword";
+ @Nonnull @NotEmpty public static final String BASIC_AUTH_PASSWORD = "basicAuthPassword";
/** The URL for the metadata. */
- public static final String METADATA_URL = "metadataURL";
+ @Nonnull @NotEmpty public static final String METADATA_URL = "metadataURL";
/** TLSTrustEngine element name. */
- public static final QName TLS_TRUST_ENGINE_ELEMENT_NAME = new QName(
- AbstractMetadataProviderParser.METADATA_NAMESPACE, "TLSTrustEngine");
+ @Nonnull public static final QName TLS_TRUST_ENGINE_ELEMENT_NAME =
+ new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE, "TLSTrustEngine");
+
+ /** Class logger. */
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(HTTPMetadataProvidersParserSupport.class);
+ /** Constructor. */
private HTTPMetadataProvidersParserSupport() {
}
-
- // Checkstyle: CyclomaticComplexity ON
- // Checkstyle: MethodLength OFF
-
+
/**
* Build the definition of the HTTPClientBuilder which contains all our configuration.
*
@@ -80,12 +83,11 @@ public class HTTPMetadataProvidersParserSupport {
* Either httpClientSecurityParametersRef or httpClientSecurityParameters can be present, not both.
*/
protected static BeanDefinition buildTLSSocketFactory(
- final Element element,
- final ParserContext parserContext,
- final String httpClientSecurityParametersRef,
- final BeanDefinition httpClientSecurityParameters) {
+ @Nonnull final Element element, @Nonnull final ParserContext parserContext,
+ @Nullable final String httpClientSecurityParametersRef,
+ @Nullable final BeanDefinition httpClientSecurityParameters) {
- Constraint.isNotNull(log, "log must be present");
+ Constraint.isNotNull(LOG, "LOG must be present");
final BeanDefinitionBuilder tlsSocketFactoryBuilder =
BeanDefinitionBuilder.genericBeanDefinition(TLSSocketFactoryFactoryBean.class);
@@ -93,8 +95,8 @@ public class HTTPMetadataProvidersParserSupport {
tlsSocketFactoryBuilder.addPropertyValue("connectionDisregardTLSCertificate",
StringSupport.trimOrNull(element.getAttributeNS(null, "disregardTLSCertificate")));
} else if (element.hasAttributeNS(null, "disregardSslCertificate")) {
- log.warn("{}: disregardSslCertificate is deprecated, please switch to disregardTLSCertificate",
- parserContext.getReaderContext().getResource().getDescription());
+ DeprecationSupport.warn(ObjectType.ATTRIBUTE, "disregardSslCertificate",
+ parserContext.getReaderContext().getResource().getDescription(), "disregardTLSCertificate");
tlsSocketFactoryBuilder.addPropertyValue("connectionDisregardTLSCertificate",
StringSupport.trimOrNull(element.getAttributeNS(null, "disregardSslCertificate")));
}
@@ -114,14 +116,20 @@ public class HTTPMetadataProvidersParserSupport {
/**
* Build the BeanDefinition for the POJO with the username and password.
*
- * @param element the HTTPMetadataProvider parser.
+ * @param element the HTTPMetadataProvider element
+ * @param parserContext parser context
+ *
* @return the bean definition with the username and password.
*/
- @Nonnull protected static BeanDefinition buildBasicCredentials(final Element element) {
+ @Nonnull protected static BeanDefinition buildBasicCredentials(final Element element,
+ @Nonnull final ParserContext parserContext) {
final BeanDefinitionBuilder builder =
BeanDefinitionBuilder.genericBeanDefinition(UsernamePasswordCredentials.class);
- log.warn(BASIC_AUTH_USER + " is deprecated, replace with use of httpClientSecurityParametersRef");
+ DeprecationSupport.warn(ObjectType.ATTRIBUTE, BASIC_AUTH_USER,
+ parserContext.getReaderContext().getResource().getDescription(), "httpClientSecurityParametersRef");
+ DeprecationSupport.warn(ObjectType.ATTRIBUTE, BASIC_AUTH_PASSWORD,
+ parserContext.getReaderContext().getResource().getDescription(), "httpClientSecurityParametersRef");
builder.setLazyInit(true);
@@ -133,26 +141,31 @@ public class HTTPMetadataProvidersParserSupport {
/**
* Build the BeanDefinition of the {@link HttpClientSecurityParameters} which contains the TLS trust engine
- * provided
+ * provided.
+ *
+ * <p>One of the first two parameters must be non-null.</p>
*
* @param tlsTrustEngineRef if present, the reference
- * @param element if present, the TLSTrustEngine element. Note : either tlsTrustEngineRef should be non null.
+ * @param tlsTrustEngine if present, the TLSTrustEngine element
* @param parserContext context
+ *
* @return the bean definition
*/
- @Nullable protected static BeanDefinition parseTLSTrustEngine(@Nullable final String tlsTrustEngineRef, @Nullable final Element tlsTrustEngine, final ParserContext parserContext) {
+ @Nullable protected static BeanDefinition parseTLSTrustEngine(@Nullable final String tlsTrustEngineRef,
+ @Nullable final Element tlsTrustEngine, @Nonnull final ParserContext parserContext) {
- final BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(HttpClientSecurityParameters.class);
+ final BeanDefinitionBuilder builder =
+ BeanDefinitionBuilder.genericBeanDefinition(HttpClientSecurityParameters.class);
if (tlsTrustEngine != null) {
if (tlsTrustEngineRef != null) {
- log.warn("<TlsTrustEngine> subelement overrides setting of tlsTrustEngineRef ");
+ LOG.warn("<TLSTrustEngine> subelement overrides setting of tlsTrustEngineRef ");
}
final Element trustEngine = ElementSupport.getFirstChildElement(tlsTrustEngine,
AbstractMetadataProviderParser.TRUST_ENGINE_ELEMENT_NAME);
if (trustEngine == null) {
- // This should be schema-invalid, but log a warning just in case.
- log.warn("{}:, Element {} did not contain a {} child element",
+ // This should be schema-invalid, but LOG a warning just in case.
+ LOG.warn("{}:, Element {} did not contain a {} child element",
parserContext.getReaderContext().getResource().getDescription(),
TLS_TRUST_ENGINE_ELEMENT_NAME,
AbstractMetadataProviderParser.TRUST_ENGINE_ELEMENT_NAME);
@@ -160,16 +173,19 @@ public class HTTPMetadataProvidersParserSupport {
}
builder.addPropertyValue("tLSTrustEngine", SpringSupport.parseCustomElement(trustEngine, parserContext));
} else if (tlsTrustEngineRef == null) {
- log.error("Internal error: tlsTrustEngineRef or TlsTrustEngine required");
+ LOG.error("Internal error: tlsTrustEngineRef or TlsTrustEngine required");
return null;
} else {
- log.warn("tlsTrustEngineRef is deprecated");
+ DeprecationSupport.warn(ObjectType.ATTRIBUTE, "tlsTrustEngineRef",
+ parserContext.getReaderContext().getResource().getDescription(),
+ "inline <TrustEngine> element or httpClientSecurityParametersRef attribute");
builder.addPropertyReference("tLSTrustEngine", tlsTrustEngineRef);
}
return builder.getBeanDefinition();
}
+// Checkstyle: CyclomaticComplexity|MethodLength OFF
/**
* Build a {@link BeanDefinitionBuilder} for a {@link HttpClientFactoryBean} and populate it from the "standard"
* attributes which are shared between the Dynamic and Static providers. non standard defaults are applied by the
@@ -180,11 +196,11 @@ public class HTTPMetadataProvidersParserSupport {
* @param defaultCaching what to use if caching not supplied.
* @param httpClientSecurityParametersRef the client security parameters ref to be used
* @param httpClientSecurityParameters the client security parameters to be used
+ *
* @return an appropriate builder
*/
@Nonnull protected static BeanDefinitionBuilder buildCommonClientBuilder(@Nonnull final Element element,
- final ParserContext parserContext,
- @Nonnull final String defaultCaching,
+ @Nonnull final ParserContext parserContext, @Nonnull final String defaultCaching,
@Nullable final String httpClientSecurityParametersRef,
@Nullable final BeanDefinition httpClientSecurityParameters) {
final String caching;
@@ -234,7 +250,8 @@ public class HTTPMetadataProvidersParserSupport {
//Note: 'requestTimeout' is deprecated in favor of 'connectionTimeout'.
if (element.hasAttributeNS(null, "requestTimeout")) {
- log.warn("requestTimeout is deprecated, use connectionTimeout");
+ DeprecationSupport.warn(ObjectType.ATTRIBUTE, "requestTimeout",
+ parserContext.getReaderContext().getResource().getDescription(), "connectionTimeout");
clientBuilder.addPropertyValue("connectionTimeout",
StringSupport.trimOrNull(element.getAttributeNS(null, "requestTimeout")));
}
@@ -251,8 +268,9 @@ public class HTTPMetadataProvidersParserSupport {
StringSupport.trimOrNull(element.getAttributeNS(null, "socketTimeout")));
}
- clientBuilder.addPropertyValue("tLSSocketFactory", HTTPMetadataProvidersParserSupport.buildTLSSocketFactory(element, parserContext,
- httpClientSecurityParametersRef, httpClientSecurityParameters));
+ clientBuilder.addPropertyValue("tLSSocketFactory",
+ HTTPMetadataProvidersParserSupport.buildTLSSocketFactory(
+ element, parserContext, httpClientSecurityParametersRef, httpClientSecurityParameters));
if (element.hasAttributeNS(null, "proxyHost")) {
clientBuilder.addPropertyValue("connectionProxyHost",
@@ -275,4 +293,6 @@ public class HTTPMetadataProvidersParserSupport {
return clientBuilder;
}
+// Checkstyle: CyclomaticComplexity|MethodLength ON
+
}
\ No newline at end of file
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/InlineMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/InlineMetadataProviderParser.java
index f10945e..0f8aeb3 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/InlineMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/InlineMetadataProviderParser.java
@@ -19,6 +19,7 @@ package net.shibboleth.idp.profile.spring.relyingparty.metadata.impl;
import java.util.List;
+import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
@@ -34,7 +35,7 @@ import org.w3c.dom.Element;
public class InlineMetadataProviderParser extends AbstractMetadataProviderParser {
/** Element name. */
- public static final QName ELEMENT_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
+ @Nonnull public static final QName ELEMENT_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
"InlineMetadataProvider");
/** {@inheritDoc} */
@@ -55,4 +56,5 @@ public class InlineMetadataProviderParser extends AbstractMetadataProviderParser
}
builder.addConstructorArgValue(metadataContent.get(0));
}
-}
+
+}
\ No newline at end of file
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ResourceBackedMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ResourceBackedMetadataProviderParser.java
index 924e7b1..4e1b52c 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ResourceBackedMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/ResourceBackedMetadataProviderParser.java
@@ -29,6 +29,8 @@ import net.shibboleth.idp.profile.spring.relyingparty.metadata.HttpClientFactory
import net.shibboleth.idp.profile.spring.resource.impl.ClasspathResourceParser;
import net.shibboleth.idp.profile.spring.resource.impl.ResourceNamespaceHandler;
import net.shibboleth.idp.profile.spring.resource.impl.SVNResourceParser;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.AttributeSupport;
import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
@@ -50,26 +52,27 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/**
- * Parser for a <ResourceBackedMetadataProvider;gt;. <br/>
- * This is the most complicated of the parsers. We reach into the resource and find out what sort it is and them summon
- * up an appropriate provider.
+ * Parser for a ResourceBackedMetadataProvider.
+ *
+ * <p>This is the most complicated of the parsers. We reach into the resource and find out what sort it is
+ * and them summon up an appropriate provider.</p>
*/
public class ResourceBackedMetadataProviderParser extends AbstractReloadingMetadataProviderParser {
/** Element name. */
- public static final QName ELEMENT_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
+ @Nonnull public static final QName ELEMENT_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
"ResourceBackedMetadataProvider");
/** Element name for the resource elements. */
- public static final QName RESOURCES_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
+ @Nonnull public static final QName RESOURCES_NAME = new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE,
"MetadataResource");
- /** For direct injection of a Spring bean **/
- public static final QName RESOURCE_REF = new QName("resourceRef");
+ /** For direct injection of a Spring bean. **/
+ @Nonnull public static final QName RESOURCE_REF = new QName("resourceRef");
/** Log. */
- private final Logger log = LoggerFactory.getLogger(ResourceBackedMetadataProviderParser.class);
+ @Nonnull private final Logger log = LoggerFactory.getLogger(ResourceBackedMetadataProviderParser.class);
/** {@inheritDoc} */
@Override protected Class<? extends AbstractBatchMetadataResolver> getNativeBeanClass(final Element element) {
@@ -88,7 +91,7 @@ public class ResourceBackedMetadataProviderParser extends AbstractReloadingMetad
throw new BeanCreationException(
"No type specified for a <Resource> within a ResourceBackedMetadataProvider");
}
- log.debug("comparing type '{}' against known Resources", qName.getLocalPart());
+ log.debug("Comparing type '{}' against known Resources", qName.getLocalPart());
if (ClasspathResourceParser.ELEMENT_NAME.equals(qName)) {
return ResourceBackedMetadataResolver.class;
@@ -113,15 +116,16 @@ public class ResourceBackedMetadataProviderParser extends AbstractReloadingMetad
super.doNativeParse(element, parserContext, builder);
if (element.hasAttributeNS(null, "maxCacheDuration")) {
- log.error("{}: maxCacheDuration is not supported", parserContext.getReaderContext().getResource()
- .getDescription());
+ log.error("{}: maxCacheDuration is not supported",
+ parserContext.getReaderContext().getResource().getDescription());
throw new BeanDefinitionParsingException(new Problem("maxCacheDuration is not supported", new Location(
parserContext.getReaderContext().getResource())));
}
final List<Element> resources = ElementSupport.getChildElements(element, RESOURCES_NAME);
if (resources.isEmpty()) {
- parseResource(StringSupport.trimOrNull(AttributeSupport.getAttributeValue(element, RESOURCE_REF)), parserContext, builder);
+ parseResource(StringSupport.trimOrNull(AttributeSupport.getAttributeValue(element, RESOURCE_REF)),
+ parserContext, builder);
return;
}
@@ -148,23 +152,23 @@ public class ResourceBackedMetadataProviderParser extends AbstractReloadingMetad
} else if (ResourceNamespaceHandler.HTTP_ELEMENT_NAME.equals(qName)) {
- log.warn("{}: {} is deprecated. consider using {}", parserContext.getReaderContext().getResource()
- .getDescription(), ResourceNamespaceHandler.HTTP_ELEMENT_NAME.getLocalPart(),
- HTTPMetadataProviderParser.ELEMENT_NAME.getLocalPart());
+ DeprecationSupport.warn(ObjectType.ELEMENT, ResourceNamespaceHandler.HTTP_ELEMENT_NAME.toString(),
+ parserContext.getReaderContext().getResource().getDescription(),
+ HTTPMetadataProviderParser.ELEMENT_NAME.toString());
parseHTTPResource(resources.get(0), parserContext, builder);
} else if (ResourceNamespaceHandler.FILE_HTTP_ELEMENT_NAME.equals(qName)) {
- log.warn("{}: {} is deprecated. consider using {}", parserContext.getReaderContext().getResource()
- .getDescription(), ResourceNamespaceHandler.FILE_HTTP_ELEMENT_NAME.getLocalPart(),
- FileBackedHTTPMetadataProviderParser.ELEMENT_NAME.getLocalPart());
+ DeprecationSupport.warn(ObjectType.ELEMENT, ResourceNamespaceHandler.FILE_HTTP_ELEMENT_NAME.toString(),
+ parserContext.getReaderContext().getResource().getDescription(),
+ FileBackedHTTPMetadataProviderParser.ELEMENT_NAME.toString());
parseFileBackedHTTPResource(resources.get(0), parserContext, builder);
} else if (ResourceNamespaceHandler.FILESYSTEM_ELEMENT_NAME.equals(qName)) {
- log.warn("{}: {} is deprecated. consider using {}", parserContext.getReaderContext().getResource()
- .getDescription(), ResourceNamespaceHandler.FILESYSTEM_ELEMENT_NAME.getLocalPart(),
- FilesystemMetadataProviderParser.ELEMENT_NAME.getLocalPart());
+ DeprecationSupport.warn(ObjectType.ELEMENT, ResourceNamespaceHandler.FILESYSTEM_ELEMENT_NAME.toString(),
+ parserContext.getReaderContext().getResource().getDescription(),
+ FilesystemMetadataProviderParser.ELEMENT_NAME.toString());
parseFilesystemResource(resources.get(0), parserContext, builder);
}
}
@@ -176,7 +180,8 @@ public class ResourceBackedMetadataProviderParser extends AbstractReloadingMetad
* @param parserContext the parser context
* @param builder the builder for the {@link ResourceBackedMetadataResolver}.
*/
- private void parseResource(@Nullable final String beanReference, final ParserContext parserContext, @Nonnull final BeanDefinitionBuilder builder) {
+ private void parseResource(@Nullable final String beanReference, final ParserContext parserContext,
+ @Nonnull final BeanDefinitionBuilder builder) {
if (null == beanReference) {
log.error("{} must not be empty", RESOURCE_REF.getLocalPart());
@@ -266,4 +271,4 @@ public class ResourceBackedMetadataProviderParser extends AbstractReloadingMetad
builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, "file")));
}
-}
+}
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list