[java-identity-provider] branch master updated: IDP-1177 - Centralize deprecation warnings through dedicated function
Scott Cantor
cantor.2 at osu.edu
Sat Jun 3 16:20:32 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=00a2cc517e53e174a83070f4adefce6ee367980b
The following commit(s) were added to refs/heads/master by this push:
new 00a2cc5 IDP-1177 - Centralize deprecation warnings through dedicated function
00a2cc5 is described below
commit 00a2cc517e53e174a83070f4adefce6ee367980b
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Sat Jun 3 16:20:29 2017 -0400
IDP-1177 - Centralize deprecation warnings through dedicated function
https://issues.shibboleth.net/jira/browse/IDP-1177
Replace and add to deprecation warnings throughout resolver config.
---
.../spring/impl/AbstractWarningFilterParser.java | 8 ++--
.../spring/ad/BaseAttributeDefinitionParser.java | 31 +++-----------
... AbstractWarningAttributeDefinitionParser.java} | 45 ++++++++++-----------
.../ContextDerivedAttributeDefinitionParser.java | 10 ++++-
...CryptoTransientIdAttributeDefinitionParser.java | 8 +++-
.../impl/PrescopedAttributeDefinitionParser.java | 9 ++++-
...henticationMethodAttributeDefinitionParser.java | 9 ++++-
.../PrincipalNameAttributeDefinitionParser.java | 9 ++++-
.../impl/RegexSplitAttributeDefinitionParser.java | 9 ++++-
...ML1NameIdentifierAttributeDefinitionParser.java | 9 ++++-
.../impl/SAML2NameIDAttributeDefinitionParser.java | 9 ++++-
.../ad/impl/ScopedAttributeDefinitionParser.java | 9 ++++-
.../ad/impl/ScriptedAttributeDefinitionParser.java | 9 ++++-
.../ad/impl/SimpleAttributeDefinitionParser.java | 9 ++++-
.../SubjectDerivedAttributeDefinitionParser.java | 10 ++++-
.../ad/impl/TemplateAttributeDefinitionParser.java | 9 ++++-
.../impl/TransientIdAttributeDefinitionParser.java | 8 +++-
.../spring/dc/AbstractDataConnectorParser.java | 24 +----------
.../impl/AbstractWarningDataConnectorParser.java | 47 ++++++++++------------
.../dc/impl/BaseComputedIDDataConnectorParser.java | 33 ++++++---------
.../dc/impl/ComputedIDDataConnectorParser.java | 6 +++
.../spring/dc/impl/ScriptDataConnectorParser.java | 11 +++--
.../spring/dc/impl/StaticDataConnectorParser.java | 10 ++++-
.../dc/impl/StoredIDDataConnectorParser.java | 7 ++++
.../dc/ldap/impl/LDAPDataConnectorParser.java | 10 ++++-
.../dc/rdbms/impl/RDBMSDataConnectorParser.java | 10 ++++-
.../spring/enc/BaseAttributeEncoderParser.java | 25 ------------
.../AbstractWarningAttributeEncoderParser.java | 45 +++++++++------------
...bstractWarningScopedAttributeEncoderParser.java | 45 +++++++++------------
.../enc/impl/AttributeEncoderNamespaceHandler.java | 1 +
.../impl/SAML1Base64AttributeEncoderParser.java | 9 ++++-
.../SAML1ScopedStringAttributeEncoderParser.java | 9 ++++-
.../impl/SAML1StringAttributeEncoderParser.java | 9 ++++-
.../SAML1StringNameIdentifierEncoderParser.java | 24 +++++++++++
.../impl/SAML1XMLObjectAttributeEncoderParser.java | 9 ++++-
.../impl/SAML2Base64AttributeEncoderParser.java | 9 ++++-
.../SAML2ScopedStringAttributeEncoderParser.java | 9 ++++-
.../impl/SAML2StringAttributeEncoderParser.java | 10 ++++-
.../enc/impl/SAML2StringNameIDEncoderParser.java | 24 +++++++++++
.../impl/SAML2XMLObjectAttributeEncoderParser.java | 9 ++++-
.../impl/AttributeResolverNamespaceHandler.java | 3 +-
.../spring/impl/InputDataConnectorParser.java | 6 ++-
...toTransientIdAttributeDefinitionParserTest.java | 1 +
.../TransientIdAttributeDefinitionParserTest.java | 1 +
...SAML1StringNameIdentifierEncoderParserTest.java | 16 ++++++++
.../enc/SAML2StringNameIDEncoderParserTest.java | 1 +
.../enc/saml1StringNameIdentifierConditional.xml | 15 +++++++
.../AbstractSAML1NameIdentifierEncoder.java | 6 ++-
.../encoding/AbstractSAML2NameIDEncoder.java | 6 ++-
.../encoding/AbstractSAMLAttributeEncoder.java | 4 +-
.../nameid/NameIdentifierAttributeEncoder.java | 2 +
.../SAML1NameIdentifierAttributeEncoder.java | 2 +
.../saml/nameid/SAML2NameIDAttributeEncoder.java | 2 +
.../impl/SAML1StringNameIdentifierEncoder.java | 2 +
.../encoding/impl/SAML2StringNameIDEncoder.java | 2 +
.../impl/TransientIdAttributeDefinition.java | 2 +
.../nameid/impl/LegacyNameIdentifierGenerator.java | 2 +
.../impl/LegacySAML1NameIdentifierGenerator.java | 2 +
.../nameid/impl/LegacySAML2NameIDGenerator.java | 2 +
59 files changed, 426 insertions(+), 256 deletions(-)
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java
index 0e56d4d..20c0534 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java
+++ b/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java
@@ -32,9 +32,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/**
- * A special case version of {@link BaseFilterParser} which warns if the non legacy name is used.
- *
- * Initially it will warn once per namespace.
+ * A special case version of {@link BaseFilterParser} which warns if the legacy name is used.
*/
public abstract class AbstractWarningFilterParser extends BaseFilterParser {
@@ -53,9 +51,9 @@ public abstract class AbstractWarningFilterParser extends BaseFilterParser {
}
/**
- * Helper function to assist rewrite from old to new prefix.
+ * Helper function to assist rewrite from old to new QName.
*
- * @return the "new" type.
+ * @return the "new" type
*/
protected abstract QName getAFPName();
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java
index d20c951..d668d25 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/BaseAttributeDefinitionParser.java
@@ -32,7 +32,6 @@ import net.shibboleth.idp.attribute.resolver.spring.impl.InputDataConnectorParse
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.AttributeSupport;
-import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
import org.slf4j.Logger;
@@ -58,11 +57,6 @@ public abstract class BaseAttributeDefinitionParser extends BaseResolverPluginPa
@Nonnull public static final QName ATTRIBUTE_ENCODER_ELEMENT_NAME =
new QName(AttributeResolverNamespaceHandler.NAMESPACE, "AttributeEncoder");
- /**
- * Whether we have ever warned because of ad: content.
- */
- private static boolean warned;
-
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(BaseAttributeDefinitionParser.class);
@@ -72,23 +66,6 @@ public abstract class BaseAttributeDefinitionParser extends BaseResolverPluginPa
@Nonnull final BeanDefinitionBuilder builder) {
super.doParse(config, parserContext, builder);
- final QName suppliedQname = DOMTypeSupport.getXSIType(config);
-
- if (!AttributeResolverNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
- if (!warned) {
- warned = true;
- log.warn("{} Configuration contains at least one element in the deprecated '{}' namespace.",
- getLogPrefix(), AttributeResolverNamespaceHandler.NAMESPACE);
- }
- if (log.isDebugEnabled()) {
- final QName otherQname =
- new QName(AttributeResolverNamespaceHandler.NAMESPACE,suppliedQname.getLocalPart(), "ad:");
- log.debug("{} Deprecated Namespace element '{}' in {}, consider using '{}'",
- getLogPrefix(), suppliedQname.toString(),
- parserContext.getReaderContext().getResource().getDescription(), otherQname.toString());
- }
- }
-
final List<Element> displayNames =
ElementSupport.getChildElements(config, new QName(AttributeResolverNamespaceHandler.NAMESPACE,
"DisplayName"));
@@ -164,10 +141,12 @@ public abstract class BaseAttributeDefinitionParser extends BaseResolverPluginPa
}
/**
- * Ask the specific parser of it needs attributeSourceID. We used to use this to log several misconfiguration possibilities,
- * These days the attribute is irrelevant if you avoid <Dependency> so this is here purely for backwards API compatibility.
+ * Ask the specific parser of it needs attributeSourceID.
+ * We used to use this to log several misconfiguration possibilities.
+ * These days the attribute is irrelevant if you avoid <Dependency>
+ * so this is here purely for backwards API compatibility.
*
- * @return Whether the attribute definition for this parser needs attributeSourceID.
+ * @return whether the attribute definition for this parser needs attributeSourceID.
*/
protected boolean needsAttributeSourceID() {
return false;
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/AbstractWarningAttributeDefinitionParser.java
similarity index 59%
copy from idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java
copy to idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/AbstractWarningAttributeDefinitionParser.java
index 56d8b43..8601ec6 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/AbstractWarningAttributeDefinitionParser.java
@@ -18,42 +18,41 @@
package net.shibboleth.idp.attribute.resolver.spring.ad.impl;
import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
-import net.shibboleth.idp.attribute.resolver.ad.impl.SimpleAttributeDefinition;
import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+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;
-/** Bean definition parser for a {@link SimpleAttributeDefinition}. */
-public class SimpleAttributeDefinitionParser extends BaseAttributeDefinitionParser {
-
- /** Schema type names - ad: (legacy). */
- @Nonnull public static final QName TYPE_NAME_AD =
- new QName(AttributeDefinitionNamespaceHandler.NAMESPACE, "Simple");
-
- /** Schema type names - ad: (legacy). */
- @Nonnull public static final QName TYPE_NAME_RESOLVER =
- new QName(AttributeResolverNamespaceHandler.NAMESPACE, "Simple");
-
- /** {@inheritDoc} */
- @Override protected Class<SimpleAttributeDefinition> getBeanClass(@Nullable final Element element) {
- return SimpleAttributeDefinition.class;
- }
-
+/**
+ * A special case version of {@link net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser}
+ * which warns if the legacy name is used.
+ */
+public abstract class AbstractWarningAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+
/** {@inheritDoc} */
@Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
super.doParse(config, parserContext, builder);
+
+ final QName suppliedQname = DOMTypeSupport.getXSIType(config);
+ if (!AttributeResolverNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
+ DeprecationSupport.warnOnce(ObjectType.XSITYPE, suppliedQname.toString(),
+ parserContext.getReaderContext().getResource().getDescription(), getPreferredName().toString());
+ }
}
- /** {@inheritDoc} */
- @Override protected boolean needsAttributeSourceID() {
- return true;
- }
-
+ /**
+ * Helper function to assist rewrite from old to new QName.
+ *
+ * @return the "new" type
+ */
+ @Nonnull protected abstract QName getPreferredName();
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ContextDerivedAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ContextDerivedAttributeDefinitionParser.java
index 91976f8..ab7829b 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ContextDerivedAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ContextDerivedAttributeDefinitionParser.java
@@ -26,12 +26,11 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.ad.impl.ContextDerivedAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/** Spring Bean Definition Parser for attribute definitions derived from the Principal. */
-public class ContextDerivedAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class ContextDerivedAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name - ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -68,4 +67,11 @@ public class ContextDerivedAttributeDefinitionParser extends BaseAttributeDefini
@Override protected boolean failOnDependencies() {
return true;
}
+
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/CryptoTransientIdAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/CryptoTransientIdAttributeDefinitionParser.java
index f8e05b0..e5b3f3b 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/CryptoTransientIdAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/CryptoTransientIdAttributeDefinitionParser.java
@@ -25,7 +25,10 @@ import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionPa
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.resolver.impl.TransientIdAttributeDefinition;
import net.shibboleth.idp.saml.nameid.impl.CryptoTransientIdGenerationStrategy;
+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 net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,6 +40,7 @@ import org.w3c.dom.Element;
* Spring bean definition parser for {@link TransientIdAttributeDefinition} using a
* {@link CryptoTransientIdGenerationStrategy}.
*/
+ at SuppressWarnings("deprecation")
public class CryptoTransientIdAttributeDefinitionParser extends BaseAttributeDefinitionParser {
/** Schema type name - ad: (legacy). */
@@ -76,7 +80,9 @@ public class CryptoTransientIdAttributeDefinitionParser extends BaseAttributeDef
builder.addPropertyValue("transientIdGenerationStrategy", strategyBuilder.getBeanDefinition());
- log.warn("{} This feature is DEPRECATED in favor of a TransientSAML2NameIDGenerator", getLogPrefix());
+ DeprecationSupport.warnOnce(ObjectType.XSITYPE, DOMTypeSupport.getXSIType(config).toString(),
+ parserContext.getReaderContext().getResource().getDescription(),
+ "via NameID Generation Service configuration");
}
/** {@inheritDoc}. So source Attribute for this. */
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrescopedAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrescopedAttributeDefinitionParser.java
index 1303832..60a1599 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrescopedAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrescopedAttributeDefinitionParser.java
@@ -22,7 +22,6 @@ import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import net.shibboleth.idp.attribute.resolver.ad.impl.PrescopedAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -33,7 +32,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/** Spring bean definition parser for prescoped attributes. */
-public class PrescopedAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class PrescopedAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -68,4 +67,10 @@ public class PrescopedAttributeDefinitionParser extends BaseAttributeDefinitionP
return true;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalAuthenticationMethodAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalAuthenticationMethodAttributeDefinitionParser.java
index 2c9a719..743fe1a 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalAuthenticationMethodAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalAuthenticationMethodAttributeDefinitionParser.java
@@ -21,13 +21,12 @@ import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
import net.shibboleth.idp.attribute.resolver.ad.impl.PrincipalAuthenticationMethodAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import org.w3c.dom.Element;
/** Spring Bean Definition Parser for PrincipalAuthenticationMethod. */
-public class PrincipalAuthenticationMethodAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class PrincipalAuthenticationMethodAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -47,4 +46,10 @@ public class PrincipalAuthenticationMethodAttributeDefinitionParser extends Base
return false;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalNameAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalNameAttributeDefinitionParser.java
index c1361df..2351dcc 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalNameAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/PrincipalNameAttributeDefinitionParser.java
@@ -24,11 +24,10 @@ import javax.xml.namespace.QName;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.ad.impl.PrincipalNameAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
/** Spring Bean Definition Parser for PrincipalName attribute definitions. */
-public class PrincipalNameAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class PrincipalNameAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -48,4 +47,10 @@ public class PrincipalNameAttributeDefinitionParser extends BaseAttributeDefinit
return false;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/RegexSplitAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/RegexSplitAttributeDefinitionParser.java
index 00ea824..1aa770d 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/RegexSplitAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/RegexSplitAttributeDefinitionParser.java
@@ -29,13 +29,12 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.ad.impl.RegexSplitAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.ad.PatternFactoryBean;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/** Spring Bean Definition Parser for Regexp split attribute definitions. */
-public class RegexSplitAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class RegexSplitAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name : ad: (Legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -82,4 +81,10 @@ public class RegexSplitAttributeDefinitionParser extends BaseAttributeDefinition
return true;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML1NameIdentifierAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML1NameIdentifierAttributeDefinitionParser.java
index 82e8bda..e1c7f2c 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML1NameIdentifierAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML1NameIdentifierAttributeDefinitionParser.java
@@ -27,13 +27,12 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.resolver.impl.SAML1NameIdentifierAttributeDefinition;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/** Spring bean definition parser for SAML 1 NameIdentifier attribute definitions. */
-public class SAML1NameIdentifierAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class SAML1NameIdentifierAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name - ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -73,4 +72,10 @@ public class SAML1NameIdentifierAttributeDefinitionParser extends BaseAttributeD
return true;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML2NameIDAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML2NameIDAttributeDefinitionParser.java
index 4c71a6a..caef140 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML2NameIDAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SAML2NameIDAttributeDefinitionParser.java
@@ -27,13 +27,12 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.resolver.impl.SAML2NameIDAttributeDefinition;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/** Spring bean definition parser for SAML 2 NameID attribute definitions. */
-public class SAML2NameIDAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class SAML2NameIDAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name - ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -77,4 +76,10 @@ public class SAML2NameIDAttributeDefinitionParser extends BaseAttributeDefinitio
return true;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParser.java
index c9d8250..e042268 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScopedAttributeDefinitionParser.java
@@ -28,14 +28,13 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.ad.impl.ScopedAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/**
* Spring Bean Definition Parser for scoped attribute definitions.
*/
-public class ScopedAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class ScopedAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name - ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -68,4 +67,10 @@ public class ScopedAttributeDefinitionParser extends BaseAttributeDefinitionPars
return true;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java
index de20c86..a7adb7e 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/ScriptedAttributeDefinitionParser.java
@@ -25,7 +25,6 @@ import javax.xml.namespace.QName;
import net.shibboleth.ext.spring.factory.EvaluableScriptFactoryBean;
import net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -40,7 +39,7 @@ import org.w3c.dom.Element;
/**
* Spring bean definition parser for scripted attribute configuration elements.
*/
-public class ScriptedAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class ScriptedAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name - ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -124,4 +123,10 @@ public class ScriptedAttributeDefinitionParser extends BaseAttributeDefinitionPa
return false;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java
index 56d8b43..237be6c 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeDefinitionParser.java
@@ -26,11 +26,10 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.ad.impl.SimpleAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
/** Bean definition parser for a {@link SimpleAttributeDefinition}. */
-public class SimpleAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class SimpleAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type names - ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -56,4 +55,10 @@ public class SimpleAttributeDefinitionParser extends BaseAttributeDefinitionPars
return true;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java
index 21bad1e..2d82e22 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java
@@ -23,7 +23,6 @@ import javax.xml.namespace.QName;
import net.shibboleth.idp.attribute.resolver.ad.impl.ContextDerivedAttributeDefinition;
import net.shibboleth.idp.attribute.resolver.ad.impl.IdPAttributePrincipalValuesFunction;
import net.shibboleth.idp.attribute.resolver.ad.impl.SubjectDerivedAttributeValuesFunction;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -35,7 +34,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/** Spring Bean Definition Parser for attribute definitions derived from the Principal. */
-public class SubjectDerivedAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class SubjectDerivedAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -100,4 +99,11 @@ public class SubjectDerivedAttributeDefinitionParser extends BaseAttributeDefini
@Override protected boolean failOnDependencies() {
return true;
}
+
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
index 393d499..444fe25 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
@@ -31,7 +31,6 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
import net.shibboleth.idp.attribute.resolver.ad.impl.TemplateAttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -39,7 +38,7 @@ import net.shibboleth.utilities.java.support.xml.ElementSupport;
/**
* Spring bean definition parser for templated attribute definition elements.
*/
-public class TemplateAttributeDefinitionParser extends BaseAttributeDefinitionParser {
+public class TemplateAttributeDefinitionParser extends AbstractWarningAttributeDefinitionParser {
/** Schema type name - ad: (legacy). */
@Nonnull public static final QName TYPE_NAME_AD =
@@ -112,4 +111,10 @@ public class TemplateAttributeDefinitionParser extends BaseAttributeDefinitionPa
return false;
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TransientIdAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TransientIdAttributeDefinitionParser.java
index cf506c9..a0a468a 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TransientIdAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TransientIdAttributeDefinitionParser.java
@@ -25,7 +25,10 @@ import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionPa
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.resolver.impl.TransientIdAttributeDefinition;
import net.shibboleth.idp.saml.nameid.impl.StoredTransientIdGenerationStrategy;
+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 net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,6 +40,7 @@ import org.w3c.dom.Element;
* Spring bean definition parser for {@link TransientIdAttributeDefinition} using a
* {@link StoredTransientIdGenerationStrategy}.
*/
+ at SuppressWarnings("deprecation")
public class TransientIdAttributeDefinitionParser extends BaseAttributeDefinitionParser {
/** Schema type name - ad: (legacy). */
@@ -81,7 +85,9 @@ public class TransientIdAttributeDefinitionParser extends BaseAttributeDefinitio
builder.addPropertyValue("transientIdGenerationStrategy", strategyBuilder.getBeanDefinition());
- log.warn("{} This feature is DEPRECATED in favor of a TransientSAML2NameIDGenerator", getLogPrefix());
+ DeprecationSupport.warnOnce(ObjectType.XSITYPE, DOMTypeSupport.getXSIType(config).toString(),
+ parserContext.getReaderContext().getResource().getDescription(),
+ "via NameID Generation Service configuration");
}
/** {@inheritDoc}. No input. */
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
index a8182b5..85db532 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
@@ -25,7 +25,6 @@ import javax.xml.namespace.QName;
import net.shibboleth.idp.attribute.resolver.AbstractDataConnector;
import net.shibboleth.idp.attribute.resolver.spring.BaseResolverPluginParser;
import net.shibboleth.idp.attribute.resolver.spring.dc.impl.DataConnectorFactoryBean;
-import net.shibboleth.idp.attribute.resolver.spring.dc.impl.DataConnectorNamespaceHandler;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -70,11 +69,6 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
@Nonnull public static final QName FAILOVER_DATA_CONNECTOR_ELEMENT_NAME = new QName(
AttributeResolverNamespaceHandler.NAMESPACE, "FailoverDataConnector");
- /**
- * Whether we have ever warned because of dc: content.
- */
- private static boolean warned;
-
/** Log4j logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(AbstractDataConnectorParser.class);
@@ -106,26 +100,10 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
//CheckStyle: MethodLength|CyclomaticComplexity OFF
/** {@inheritDoc} */
- @Override protected final void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
+ @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
super.doParse(config, parserContext, builder);
- final QName suppliedQname = DOMTypeSupport.getXSIType(config);
- if (!AttributeResolverNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
- if (!warned) {
- warned = true;
- log.warn("{} Configuration contains at least one element in the deprecated '{}' namespace.",
- getLogPrefix(), DataConnectorNamespaceHandler.NAMESPACE);
- }
- if (log.isDebugEnabled()) {
- final QName otherQname =
- new QName(DataConnectorNamespaceHandler.NAMESPACE,suppliedQname.getLocalPart(), "dc:");
- log.debug("{} Deprecated Namespace element '{}' in {}, consider using '{}'",
- getLogPrefix(), suppliedQname.toString(),
- parserContext.getReaderContext().getResource().getDescription(), otherQname.toString());
- }
- }
-
final List<Element> failoverConnector =
ElementSupport.getChildElements(config, FAILOVER_DATA_CONNECTOR_ELEMENT_NAME);
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/AbstractWarningDataConnectorParser.java
similarity index 56%
copy from idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java
copy to idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/AbstractWarningDataConnectorParser.java
index 0e56d4d..9557763 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/AbstractWarningDataConnectorParser.java
@@ -15,48 +15,43 @@
* limitations under the License.
*/
-package net.shibboleth.idp.attribute.filter.spring.impl;
+package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
-import net.shibboleth.idp.attribute.filter.spring.basic.impl.AttributeFilterBasicNamespaceHandler;
-import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeFilterSAMLNamespaceHandler;
-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.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
+import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+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;
+
/**
- * A special case version of {@link BaseFilterParser} which warns if the non legacy name is used.
- *
- * Initially it will warn once per namespace.
+ * A special case version of {@link net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser}
+ * which warns if the legacy name is used.
*/
-public abstract class AbstractWarningFilterParser extends BaseFilterParser {
-
+public abstract class AbstractWarningDataConnectorParser
+ extends net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser {
+
/** {@inheritDoc} */
- @Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
+ @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
-
- final QName suppliedQname = DOMTypeSupport.getXSIType(element);
- if (AttributeFilterSAMLNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())
- || AttributeFilterBasicNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
+ super.doParse(config, parserContext, builder);
+
+ final QName suppliedQname = DOMTypeSupport.getXSIType(config);
+ if (!AttributeResolverNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
DeprecationSupport.warnOnce(ObjectType.XSITYPE, suppliedQname.toString(),
- parserContext.getReaderContext().getResource().getDescription(), getAFPName().toString());
- }
-
- super.doParse(element, parserContext, builder);
+ parserContext.getReaderContext().getResource().getDescription(), getPreferredName().toString());
+ }
}
/**
- * Helper function to assist rewrite from old to new prefix.
+ * Helper function to assist rewrite from old to new QName.
*
- * @return the "new" type.
+ * @return the "new" type
*/
- protected abstract QName getAFPName();
-
+ @Nonnull protected abstract QName getPreferredName();
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/BaseComputedIDDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/BaseComputedIDDataConnectorParser.java
index 89bb5b3..c5bad85 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/BaseComputedIDDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/BaseComputedIDDataConnectorParser.java
@@ -27,7 +27,9 @@ import net.shibboleth.idp.attribute.resolver.spring.BaseResolverPluginParser;
import net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+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 net.shibboleth.utilities.java.support.xml.AttributeSupport;
import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -45,11 +47,6 @@ import org.w3c.dom.Element;
*/
public abstract class BaseComputedIDDataConnectorParser extends BaseResolverPluginParser {
- /**
- * Whether we have ever warned because of dc: content.
- */
- private static boolean warned;
-
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(BaseComputedIDDataConnectorParser.class);
@@ -67,22 +64,11 @@ public abstract class BaseComputedIDDataConnectorParser extends BaseResolverPlug
super.doParse(config, parserContext, builder);
final QName suppliedQname = DOMTypeSupport.getXSIType(config);
-
if (!AttributeResolverNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
- if (!warned) {
- warned = true;
- log.warn("{} Configuration contains at least one element in the deprecated '{}' namespace.",
- getLogPrefix(), DataConnectorNamespaceHandler.NAMESPACE);
- }
- if (log.isDebugEnabled()) {
- final QName otherQname =
- new QName(DataConnectorNamespaceHandler.NAMESPACE,suppliedQname.getLocalPart(), "dc:");
- log.debug("{} Deprecated Namespace element '{}' in {}, consider using' {}'",
- getLogPrefix(), suppliedQname.toString(),
- parserContext.getReaderContext().getResource().getDescription(), otherQname.toString());
- }
- }
-
+ DeprecationSupport.warnOnce(ObjectType.XSITYPE, suppliedQname.toString(),
+ parserContext.getReaderContext().getResource().getDescription(), getPreferredName().toString());
+ }
+
final String generatedAttribute;
if (config.hasAttributeNS(null, "generatedAttributeID")) {
generatedAttribute = StringSupport.trimOrNull(config.getAttributeNS(null, "generatedAttributeID"));
@@ -136,4 +122,11 @@ public abstract class BaseComputedIDDataConnectorParser extends BaseResolverPlug
return builder.toString();
}
+ /**
+ * Helper function to assist rewrite from old to new QName.
+ *
+ * @return the "new" type
+ */
+ protected abstract QName getPreferredName();
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIDDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIDDataConnectorParser.java
index 7277905..6daad0c 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIDDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIDDataConnectorParser.java
@@ -50,4 +50,10 @@ public class ComputedIDDataConnectorParser extends BaseComputedIDDataConnectorPa
super.doParse(config, parserContext, builder, "computedId");
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptDataConnectorParser.java
index 46a1ad0..a97315c 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ScriptDataConnectorParser.java
@@ -25,7 +25,6 @@ import javax.xml.namespace.QName;
import net.shibboleth.ext.spring.factory.EvaluableScriptFactoryBean;
import net.shibboleth.idp.attribute.resolver.dc.impl.ScriptedDataConnector;
import net.shibboleth.idp.attribute.resolver.spring.ad.impl.ScriptedAttributeDefinitionParser;
-import net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -38,13 +37,13 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/** Bean definition Parser for a {@link ScriptedDataConnector}. */
-public class ScriptDataConnectorParser extends AbstractDataConnectorParser {
+public class ScriptDataConnectorParser extends AbstractWarningDataConnectorParser {
/** Schema type name - dc: (legacy). */
@Nonnull public static final QName TYPE_NAME_DC = new QName(DataConnectorNamespaceHandler.NAMESPACE, "Script");
/** Schema type name - resolver: . */
- @Nonnull public static final QName TYPE_NAME_RESVOLVER =
+ @Nonnull public static final QName TYPE_NAME_RESOLVER =
new QName(AttributeResolverNamespaceHandler.NAMESPACE, "ScriptedDataConnector");
/** Script file element name - dc:. */
@@ -125,4 +124,10 @@ public class ScriptDataConnectorParser extends AbstractDataConnectorParser {
}
// Checkstyle: CyclomaticComplexity ON
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
index e7294d8..5e3564d 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParser.java
@@ -25,7 +25,6 @@ import javax.xml.namespace.QName;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.StringAttributeValue;
import net.shibboleth.idp.attribute.resolver.dc.impl.StaticDataConnector;
-import net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
@@ -39,7 +38,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/** Bean definition Parser for a {@link StaticDataConnector}. */
-public class StaticDataConnectorParser extends AbstractDataConnectorParser {
+public class StaticDataConnectorParser extends AbstractWarningDataConnectorParser {
/** Schema type name - dc: (legacy). */
@Nonnull public static final QName TYPE_NAME_DC = new QName(DataConnectorNamespaceHandler.NAMESPACE, "Static");
@@ -103,4 +102,11 @@ public class StaticDataConnectorParser extends AbstractDataConnectorParser {
@Override protected boolean warnOnDependencies() {
return true;
}
+
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ 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 4f2fc28..219b7ac 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
@@ -136,4 +136,11 @@ public class StoredIDDataConnectorParser extends BaseComputedIDDataConnectorPars
final ManagedConnectionParser parser = new ManagedConnectionParser(config);
return parser.createDataSource();
}
+
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
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 7dec6a4..6bccdf9 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
@@ -29,7 +29,7 @@ import net.shibboleth.idp.attribute.resolver.dc.ldap.impl.ConnectionFactoryValid
import net.shibboleth.idp.attribute.resolver.dc.ldap.impl.LDAPDataConnector;
import net.shibboleth.idp.attribute.resolver.dc.ldap.impl.StringAttributeValueMappingStrategy;
import net.shibboleth.idp.attribute.resolver.dc.ldap.impl.TemplatedExecutableSearchFilterBuilder;
-import net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser;
+import net.shibboleth.idp.attribute.resolver.spring.dc.impl.AbstractWarningDataConnectorParser;
import net.shibboleth.idp.attribute.resolver.spring.dc.impl.CacheConfigParser;
import net.shibboleth.idp.attribute.resolver.spring.dc.impl.DataConnectorNamespaceHandler;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
@@ -75,7 +75,7 @@ import org.w3c.dom.Element;
* Bean definition Parser for a {@link LDAPDataConnector}. <em>Note</em> That parsing the V2 configuration will set some
* beans with hard wired defaults. See {@link #doParseV2(Element, ParserContext, BeanDefinitionBuilder)}.
*/
-public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
+public class LDAPDataConnectorParser extends AbstractWarningDataConnectorParser {
/** Schema type name - dc: (Legacy). */
@Nonnull public static final QName
@@ -92,6 +92,12 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
@Override protected Class<LDAPDataConnector> getNativeBeanClass() {
return LDAPDataConnector.class;
}
+
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
// CheckStyle: MethodLength|CyclomaticComplexity OFF
/**
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 af1dd4c..8387222 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
@@ -27,7 +27,7 @@ import net.shibboleth.idp.attribute.resolver.dc.rdbms.impl.DataSourceValidator;
import net.shibboleth.idp.attribute.resolver.dc.rdbms.impl.RDBMSDataConnector;
import net.shibboleth.idp.attribute.resolver.dc.rdbms.impl.StringResultMappingStrategy;
import net.shibboleth.idp.attribute.resolver.dc.rdbms.impl.TemplatedExecutableStatementBuilder;
-import net.shibboleth.idp.attribute.resolver.spring.dc.AbstractDataConnectorParser;
+import net.shibboleth.idp.attribute.resolver.spring.dc.impl.AbstractWarningDataConnectorParser;
import net.shibboleth.idp.attribute.resolver.spring.dc.impl.CacheConfigParser;
import net.shibboleth.idp.attribute.resolver.spring.dc.impl.DataConnectorNamespaceHandler;
import net.shibboleth.idp.attribute.resolver.spring.dc.impl.ManagedConnectionParser;
@@ -48,7 +48,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/** Bean definition Parser for a {@link RDBMSDataConnector}. */
-public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
+public class RDBMSDataConnectorParser extends AbstractWarningDataConnectorParser {
/** Schema type name - dc: (Legacy). */
@Nonnull public static final QName TYPE_NAME_DC =
@@ -67,6 +67,12 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
}
/** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
+ /** {@inheritDoc} */
@Override protected void doV2Parse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
index 78a8b04..eafe641 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
@@ -18,15 +18,12 @@
package net.shibboleth.idp.attribute.resolver.spring.enc;
import javax.annotation.Nonnull;
-import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.resolver.spring.enc.impl.AttributeEncoderNamespaceHandler;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.profile.logic.ScriptedPredicate;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.ScriptTypeBeanParser;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
import net.shibboleth.utilities.java.support.xml.ElementSupport;
import org.slf4j.Logger;
@@ -45,11 +42,6 @@ public abstract class BaseAttributeEncoderParser extends AbstractSingleBeanDefin
/** Local name of name attribute. */
@Nonnull @NotEmpty public static final String NAME_ATTRIBUTE_NAME = "name";
- /**
- * Whether we have ever warned because of enc: content.
- */
- private static boolean warned;
-
/** Log4j logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(BaseAttributeEncoderParser.class);
@@ -76,23 +68,6 @@ public abstract class BaseAttributeEncoderParser extends AbstractSingleBeanDefin
super.doParse(config, parserContext, builder);
- final QName suppliedQname = DOMTypeSupport.getXSIType(config);
- if (!AttributeResolverNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
- if (!warned) {
- warned = true;
- log.warn("Configuration contains at least one element in the deprecated '{}' namespace.",
- AttributeEncoderNamespaceHandler.NAMESPACE);
- }
- if (log.isDebugEnabled()) {
- final QName otherQname =
- new QName(AttributeEncoderNamespaceHandler.NAMESPACE,suppliedQname.getLocalPart(), "dc:");
- log.debug("Deprecated Namespace element '{}' in {}, consider using '{}'", suppliedQname.toString(),
- parserContext.getReaderContext().getResource().getDescription(), otherQname.toString());
- }
- }
-
-
-
final String attributeName = StringSupport.trimOrNull(config.getAttributeNS(null, NAME_ATTRIBUTE_NAME));
if (nameRequired && attributeName == null) {
throw new BeanCreationException("Attribute encoder must contain a name property");
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AbstractWarningAttributeEncoderParser.java
similarity index 56%
copy from idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java
copy to idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AbstractWarningAttributeEncoderParser.java
index 0e56d4d..b1ed62a 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AbstractWarningAttributeEncoderParser.java
@@ -15,48 +15,43 @@
* limitations under the License.
*/
-package net.shibboleth.idp.attribute.filter.spring.impl;
+package net.shibboleth.idp.attribute.resolver.spring.enc.impl;
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
-import net.shibboleth.idp.attribute.filter.spring.basic.impl.AttributeFilterBasicNamespaceHandler;
-import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeFilterSAMLNamespaceHandler;
-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.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
+import net.shibboleth.idp.attribute.resolver.spring.enc.BaseAttributeEncoderParser;
+import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+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;
+
/**
- * A special case version of {@link BaseFilterParser} which warns if the non legacy name is used.
- *
- * Initially it will warn once per namespace.
+ * A special case version of {@link BaseAttributeEncoderParser} which warns if the legacy name is used.
*/
-public abstract class AbstractWarningFilterParser extends BaseFilterParser {
-
+public abstract class AbstractWarningAttributeEncoderParser extends BaseAttributeEncoderParser {
+
/** {@inheritDoc} */
- @Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
+ @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
-
- final QName suppliedQname = DOMTypeSupport.getXSIType(element);
- if (AttributeFilterSAMLNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())
- || AttributeFilterBasicNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
+ super.doParse(config, parserContext, builder);
+
+ final QName suppliedQname = DOMTypeSupport.getXSIType(config);
+ if (!AttributeResolverNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
DeprecationSupport.warnOnce(ObjectType.XSITYPE, suppliedQname.toString(),
- parserContext.getReaderContext().getResource().getDescription(), getAFPName().toString());
- }
-
- super.doParse(element, parserContext, builder);
+ parserContext.getReaderContext().getResource().getDescription(), getPreferredName().toString());
+ }
}
/**
- * Helper function to assist rewrite from old to new prefix.
+ * Helper function to assist rewrite from old to new QName.
*
- * @return the "new" type.
+ * @return the "new" type
*/
- protected abstract QName getAFPName();
+ @Nonnull protected abstract QName getPreferredName();
}
\ No newline at end of file
diff --git a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AbstractWarningScopedAttributeEncoderParser.java
similarity index 56%
copy from idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java
copy to idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AbstractWarningScopedAttributeEncoderParser.java
index 0e56d4d..8dd53b7 100644
--- a/idp-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/impl/AbstractWarningFilterParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AbstractWarningScopedAttributeEncoderParser.java
@@ -15,48 +15,43 @@
* limitations under the License.
*/
-package net.shibboleth.idp.attribute.filter.spring.impl;
+package net.shibboleth.idp.attribute.resolver.spring.enc.impl;
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.filter.spring.BaseFilterParser;
-import net.shibboleth.idp.attribute.filter.spring.basic.impl.AttributeFilterBasicNamespaceHandler;
-import net.shibboleth.idp.attribute.filter.spring.saml.impl.AttributeFilterSAMLNamespaceHandler;
-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.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
+import net.shibboleth.idp.attribute.resolver.spring.enc.BaseScopedAttributeEncoderParser;
+import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+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;
+
/**
- * A special case version of {@link BaseFilterParser} which warns if the non legacy name is used.
- *
- * Initially it will warn once per namespace.
+ * A special case version of {@link BaseScopedAttributeEncoderParser} which warns if the legacy name is used.
*/
-public abstract class AbstractWarningFilterParser extends BaseFilterParser {
-
+public abstract class AbstractWarningScopedAttributeEncoderParser extends BaseScopedAttributeEncoderParser {
+
/** {@inheritDoc} */
- @Override protected void doParse(@Nonnull final Element element, @Nonnull final ParserContext parserContext,
+ @Override protected void doParse(@Nonnull final Element config, @Nonnull final ParserContext parserContext,
@Nonnull final BeanDefinitionBuilder builder) {
-
- final QName suppliedQname = DOMTypeSupport.getXSIType(element);
- if (AttributeFilterSAMLNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())
- || AttributeFilterBasicNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
+ super.doParse(config, parserContext, builder);
+
+ final QName suppliedQname = DOMTypeSupport.getXSIType(config);
+ if (!AttributeResolverNamespaceHandler.NAMESPACE.equals(suppliedQname.getNamespaceURI())) {
DeprecationSupport.warnOnce(ObjectType.XSITYPE, suppliedQname.toString(),
- parserContext.getReaderContext().getResource().getDescription(), getAFPName().toString());
- }
-
- super.doParse(element, parserContext, builder);
+ parserContext.getReaderContext().getResource().getDescription(), getPreferredName().toString());
+ }
}
/**
- * Helper function to assist rewrite from old to new prefix.
+ * Helper function to assist rewrite from old to new QName.
*
- * @return the "new" type.
+ * @return the "new" type
*/
- protected abstract QName getAFPName();
+ @Nonnull protected abstract QName getPreferredName();
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AttributeEncoderNamespaceHandler.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AttributeEncoderNamespaceHandler.java
index c6d25cf..cc83e53 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AttributeEncoderNamespaceHandler.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/AttributeEncoderNamespaceHandler.java
@@ -23,6 +23,7 @@ import net.shibboleth.ext.spring.util.BaseSpringNamespaceHandler;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
/** Namespace handler for the attribute resolver. */
+ at SuppressWarnings("deprecation")
public class AttributeEncoderNamespaceHandler extends BaseSpringNamespaceHandler {
/** Namespace for this handler. */
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1Base64AttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1Base64AttributeEncoderParser.java
index 66a6243..6655b09 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1Base64AttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1Base64AttributeEncoderParser.java
@@ -21,7 +21,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.resolver.spring.enc.BaseAttributeEncoderParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML1ByteAttributeEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -34,7 +33,7 @@ import org.w3c.dom.Element;
/**
* Spring Bean Definition Parser for {@link SAML1ByteAttributeEncoder}.
*/
-public class SAML1Base64AttributeEncoderParser extends BaseAttributeEncoderParser {
+public class SAML1Base64AttributeEncoderParser extends AbstractWarningAttributeEncoderParser {
/** Schema type name: enc: (legacy). */
@Nonnull public static final QName TYPE_NAME_ENC = new QName(AttributeEncoderNamespaceHandler.NAMESPACE,
@@ -68,4 +67,10 @@ public class SAML1Base64AttributeEncoderParser extends BaseAttributeEncoderParse
}
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1ScopedStringAttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1ScopedStringAttributeEncoderParser.java
index 5ab837f..f1de48b 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1ScopedStringAttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1ScopedStringAttributeEncoderParser.java
@@ -21,7 +21,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.resolver.spring.enc.BaseScopedAttributeEncoderParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML1ScopedStringAttributeEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -34,7 +33,7 @@ import org.w3c.dom.Element;
/**
* Spring Bean Definition Parser for {@link SAML1ScopedStringAttributeEncoder}.
*/
-public class SAML1ScopedStringAttributeEncoderParser extends BaseScopedAttributeEncoderParser {
+public class SAML1ScopedStringAttributeEncoderParser extends AbstractWarningScopedAttributeEncoderParser {
/** Schema type name - enc: (legacy). */
@Nonnull public static final QName TYPE_NAME_ENC = new QName(AttributeEncoderNamespaceHandler.NAMESPACE,
@@ -73,4 +72,10 @@ public class SAML1ScopedStringAttributeEncoderParser extends BaseScopedAttribute
}
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringAttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringAttributeEncoderParser.java
index dcdeb8e..cd1c02f 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringAttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringAttributeEncoderParser.java
@@ -21,7 +21,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.resolver.spring.enc.BaseAttributeEncoderParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML1StringAttributeEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -35,7 +34,7 @@ import org.w3c.dom.Element;
/**
* Spring Bean Definition Parser for {@link SAML1StringAttributeEncoder}.
*/
-public class SAML1StringAttributeEncoderParser extends BaseAttributeEncoderParser {
+public class SAML1StringAttributeEncoderParser extends AbstractWarningAttributeEncoderParser {
/** Schema type name - enc: (legacy). */
@Nonnull public static final QName TYPE_NAME_ENC = new QName(AttributeEncoderNamespaceHandler.NAMESPACE,
@@ -73,4 +72,10 @@ public class SAML1StringAttributeEncoderParser extends BaseAttributeEncoderParse
}
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringNameIdentifierEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringNameIdentifierEncoderParser.java
index 0cc88a5..38f18aa 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringNameIdentifierEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1StringNameIdentifierEncoderParser.java
@@ -22,9 +22,15 @@ import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+import net.shibboleth.idp.profile.logic.ScriptedPredicate;
+import net.shibboleth.idp.profile.spring.relyingparty.metadata.ScriptTypeBeanParser;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML1StringNameIdentifierEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+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 net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
+import net.shibboleth.utilities.java.support.xml.ElementSupport;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
@@ -33,6 +39,8 @@ import org.w3c.dom.Element;
/**
* Spring bean definition parser for {@link SAML1StringNameIdentifierEncoder}.
+ *
+ * @deprecated
*/
public class SAML1StringNameIdentifierEncoderParser extends AbstractSingleBeanDefinitionParser {
@@ -60,6 +68,22 @@ public class SAML1StringNameIdentifierEncoderParser extends AbstractSingleBeanDe
@Nonnull final BeanDefinitionBuilder builder) {
super.doParse(config, parserContext, builder);
+ DeprecationSupport.warnOnce(ObjectType.XSITYPE, DOMTypeSupport.getXSIType(config).toString(),
+ parserContext.getReaderContext().getResource().getDescription(),
+ "via NameID Generation Service configuration");
+
+ if (config.hasAttributeNS(null, "activationConditionRef")) {
+ builder.addPropertyReference("activationCondition",
+ StringSupport.trimOrNull(config.getAttributeNS(null, "activationConditionRef")));
+ } else {
+ final Element child = ElementSupport.getFirstChildElement(config);
+ if (child != null && ElementSupport.isElementNamed(child,
+ AttributeResolverNamespaceHandler.NAMESPACE, "ActivationConditionScript")) {
+ builder.addPropertyValue("activationCondition",
+ ScriptTypeBeanParser.parseScriptType(ScriptedPredicate.class, child).getBeanDefinition());
+ }
+ }
+
if (config.hasAttributeNS(null, FORMAT_ATTRIBUTE_NAME)) {
final String format = StringSupport.trimOrNull(config.getAttributeNS(null, FORMAT_ATTRIBUTE_NAME));
builder.addPropertyValue("nameFormat", format);
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1XMLObjectAttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1XMLObjectAttributeEncoderParser.java
index ca6414a..18bf9f0 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1XMLObjectAttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML1XMLObjectAttributeEncoderParser.java
@@ -21,7 +21,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.resolver.spring.enc.BaseAttributeEncoderParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML1XMLObjectAttributeEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -32,7 +31,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/** Spring Bean Definition Parser for {@link SAML1XMLObjectAttributeEncoder}. */
-public class SAML1XMLObjectAttributeEncoderParser extends BaseAttributeEncoderParser {
+public class SAML1XMLObjectAttributeEncoderParser extends AbstractWarningAttributeEncoderParser {
/** Schema type name- enc: (legacy). */
@Nonnull public static final QName TYPE_NAME_ENC =
@@ -66,4 +65,10 @@ public class SAML1XMLObjectAttributeEncoderParser extends BaseAttributeEncoderPa
}
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2Base64AttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2Base64AttributeEncoderParser.java
index 881f6c5..d3ba886 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2Base64AttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2Base64AttributeEncoderParser.java
@@ -21,7 +21,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.resolver.spring.enc.BaseAttributeEncoderParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML2ByteAttributeEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -34,7 +33,7 @@ import org.w3c.dom.Element;
/**
* Spring Bean Definition Parser for {@link SAML2ByteAttributeEncoder}.
*/
-public class SAML2Base64AttributeEncoderParser extends BaseAttributeEncoderParser {
+public class SAML2Base64AttributeEncoderParser extends AbstractWarningAttributeEncoderParser {
/** Schema type name- enc: (legacy). */
@Nonnull public static final QName TYPE_NAME_ENC = new QName(AttributeEncoderNamespaceHandler.NAMESPACE,
@@ -73,4 +72,10 @@ public class SAML2Base64AttributeEncoderParser extends BaseAttributeEncoderParse
builder.addPropertyValue("friendlyName", config.getAttributeNS(null, FRIENDLY_NAME_ATTRIBUTE_NAME));
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2ScopedStringAttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2ScopedStringAttributeEncoderParser.java
index 4c18d19..86f1346 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2ScopedStringAttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2ScopedStringAttributeEncoderParser.java
@@ -21,7 +21,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.resolver.spring.enc.BaseScopedAttributeEncoderParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML2ScopedStringAttributeEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -34,7 +33,7 @@ import org.w3c.dom.Element;
/**
* Spring Bean Definition Parser for {@link SAML2ScopedStringAttributeEncoder}.
*/
-public class SAML2ScopedStringAttributeEncoderParser extends BaseScopedAttributeEncoderParser {
+public class SAML2ScopedStringAttributeEncoderParser extends AbstractWarningScopedAttributeEncoderParser {
/** Schema type name- enc: (legacy). */
@Nonnull public static final QName TYPE_NAME_ENC = new QName(AttributeEncoderNamespaceHandler.NAMESPACE,
@@ -79,4 +78,10 @@ public class SAML2ScopedStringAttributeEncoderParser extends BaseScopedAttribute
StringSupport.trimOrNull(config.getAttributeNS(null, FRIENDLY_NAME_ATTRIBUTE_NAME)));
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringAttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringAttributeEncoderParser.java
index d22b123..2734872 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringAttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringAttributeEncoderParser.java
@@ -21,7 +21,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.resolver.spring.enc.BaseAttributeEncoderParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML2StringAttributeEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -34,7 +33,7 @@ import org.w3c.dom.Element;
/**
* Spring Bean Definition Parser for {@link SAML2StringAttributeEncoder}.
*/
-public class SAML2StringAttributeEncoderParser extends BaseAttributeEncoderParser {
+public class SAML2StringAttributeEncoderParser extends AbstractWarningAttributeEncoderParser {
/** Schema type name- enc: (legacy). */
@Nonnull public static final QName TYPE_NAME_ENC = new QName(AttributeEncoderNamespaceHandler.NAMESPACE,
@@ -73,4 +72,11 @@ public class SAML2StringAttributeEncoderParser extends BaseAttributeEncoderParse
builder.addPropertyValue("friendlyName", config.getAttribute(FRIENDLY_NAME_ATTRIBUTE_NAME));
}
+
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringNameIDEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringNameIDEncoderParser.java
index 06218e1..6f960b1 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringNameIDEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2StringNameIDEncoderParser.java
@@ -22,9 +22,15 @@ import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
+import net.shibboleth.idp.profile.logic.ScriptedPredicate;
+import net.shibboleth.idp.profile.spring.relyingparty.metadata.ScriptTypeBeanParser;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML2StringNameIDEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+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 net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
+import net.shibboleth.utilities.java.support.xml.ElementSupport;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
@@ -33,6 +39,8 @@ import org.w3c.dom.Element;
/**
* Spring bean definition parser for {@link SAML2StringNameIDEncoder}.
+ *
+ * @deprecated
*/
public class SAML2StringNameIDEncoderParser extends AbstractSingleBeanDefinitionParser {
@@ -60,6 +68,22 @@ public class SAML2StringNameIDEncoderParser extends AbstractSingleBeanDefinition
@Nonnull final BeanDefinitionBuilder builder) {
super.doParse(config, parserContext, builder);
+ DeprecationSupport.warnOnce(ObjectType.XSITYPE, DOMTypeSupport.getXSIType(config).toString(),
+ parserContext.getReaderContext().getResource().getDescription(),
+ "via NameID Generation Service configuration");
+
+ if (config.hasAttributeNS(null, "activationConditionRef")) {
+ builder.addPropertyReference("activationCondition",
+ StringSupport.trimOrNull(config.getAttributeNS(null, "activationConditionRef")));
+ } else {
+ final Element child = ElementSupport.getFirstChildElement(config);
+ if (child != null && ElementSupport.isElementNamed(child,
+ AttributeResolverNamespaceHandler.NAMESPACE, "ActivationConditionScript")) {
+ builder.addPropertyValue("activationCondition",
+ ScriptTypeBeanParser.parseScriptType(ScriptedPredicate.class, child).getBeanDefinition());
+ }
+ }
+
if (config.hasAttributeNS(null, FORMAT_ATTRIBUTE_NAME)) {
final String namespace = StringSupport.trimOrNull(config.getAttributeNS(null, FORMAT_ATTRIBUTE_NAME));
builder.addPropertyValue("nameFormat", namespace);
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2XMLObjectAttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2XMLObjectAttributeEncoderParser.java
index 37e6add..0905863 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2XMLObjectAttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/impl/SAML2XMLObjectAttributeEncoderParser.java
@@ -21,7 +21,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
-import net.shibboleth.idp.attribute.resolver.spring.enc.BaseAttributeEncoderParser;
import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML2XMLObjectAttributeEncoder;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -32,7 +31,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
/** Spring Bean Definition Parser for SAML2 XMLObject attribute encoder. */
-public class SAML2XMLObjectAttributeEncoderParser extends BaseAttributeEncoderParser {
+public class SAML2XMLObjectAttributeEncoderParser extends AbstractWarningAttributeEncoderParser {
/** Schema type name- enc: (legacy). */
@Nonnull public static final QName TYPE_NAME_ENC = new QName(AttributeEncoderNamespaceHandler.NAMESPACE,
@@ -72,4 +71,10 @@ public class SAML2XMLObjectAttributeEncoderParser extends BaseAttributeEncoderPa
StringSupport.trimOrNull(config.getAttributeNS(null, FRIENDLY_NAME_ATTRIBUTE_NAME)));
}
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected QName getPreferredName() {
+ return TYPE_NAME_RESOLVER;
+ }
+
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverNamespaceHandler.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverNamespaceHandler.java
index af49f12..7aca8bb 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverNamespaceHandler.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/AttributeResolverNamespaceHandler.java
@@ -60,6 +60,7 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import org.springframework.beans.factory.xml.BeanDefinitionParser;
/** Namespace handler for the attribute resolver. */
+ at SuppressWarnings("deprecation")
public class AttributeResolverNamespaceHandler extends BaseSpringNamespaceHandler {
/** Namespace for this handler. */
@@ -117,7 +118,7 @@ public class AttributeResolverNamespaceHandler extends BaseSpringNamespaceHandle
new ComputedIDDataConnectorParser());
registerBeanDefinitionParser(RDBMSDataConnectorParser.TYPE_NAME_RESOLVER, new RDBMSDataConnectorParser());
registerBeanDefinitionParser(LDAPDataConnectorParser.TYPE_NAME_RESOLVER, new LDAPDataConnectorParser());
- registerBeanDefinitionParser(ScriptDataConnectorParser.TYPE_NAME_RESVOLVER, new ScriptDataConnectorParser());
+ registerBeanDefinitionParser(ScriptDataConnectorParser.TYPE_NAME_RESOLVER, new ScriptDataConnectorParser());
registerBeanDefinitionParser(StaticDataConnectorParser.TYPE_NAME_RESOLVER, new StaticDataConnectorParser());
registerBeanDefinitionParser(StoredIDDataConnectorParser.TYPE_NAME_RESOLVER, new StoredIDDataConnectorParser());
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java
index ff95168..83593ce 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/impl/InputDataConnectorParser.java
@@ -58,14 +58,16 @@ public class InputDataConnectorParser extends ResolverPluginDependencyParser {
if (attributes != null) {
if (allAttributes != null) {
log.error("attributeNames and allAttributes are mutually exclusive");
- throw new BeanCreationException(ELEMENT_NAME.getLocalPart() + ": attributeNames and allAttributes are mutually exclusive");
+ throw new BeanCreationException(ELEMENT_NAME.getLocalPart()
+ + ": attributeNames and allAttributes are mutually exclusive");
}
builder.addPropertyValue("attributeNames", attributes);
} else if (allAttributes != null) {
builder.addPropertyValue("allAttributes", allAttributes);
} else {
log.error("One of attributeNames or allAttributes must be specified");
- throw new BeanCreationException(ELEMENT_NAME.getLocalPart() + ": One of attributeNames or allAttributes must be specified");
+ throw new BeanCreationException(ELEMENT_NAME.getLocalPart()
+ + ": One of attributeNames or allAttributes must be specified");
}
}
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/CryptoTransientIdAttributeDefinitionParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/CryptoTransientIdAttributeDefinitionParserTest.java
index 059158e..14a5e13 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/CryptoTransientIdAttributeDefinitionParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/CryptoTransientIdAttributeDefinitionParserTest.java
@@ -29,6 +29,7 @@ import org.testng.annotations.Test;
/**
* test for {@link CryptoTransientIdAttributeDefinitionParser}
*/
+ at SuppressWarnings("deprecation")
public class CryptoTransientIdAttributeDefinitionParserTest extends BaseAttributeDefinitionParserTest {
private TransientIdAttributeDefinition getDefinition(String fileName) {
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/TransientIdAttributeDefinitionParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/TransientIdAttributeDefinitionParserTest.java
index ec6317b..a398b5f 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/TransientIdAttributeDefinitionParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/TransientIdAttributeDefinitionParserTest.java
@@ -30,6 +30,7 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
/**
* test for {@link TransientIdAttributeDefinitionParser}
*/
+ at SuppressWarnings("deprecation")
public class TransientIdAttributeDefinitionParserTest extends BaseAttributeDefinitionParserTest {
private TransientIdAttributeDefinition getDefinition(String fileName) {
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1StringNameIdentifierEncoderParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1StringNameIdentifierEncoderParserTest.java
index 5c36327..ea9436b 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1StringNameIdentifierEncoderParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1StringNameIdentifierEncoderParserTest.java
@@ -22,12 +22,16 @@ import net.shibboleth.idp.attribute.resolver.spring.enc.impl.SAML1StringNameIden
import net.shibboleth.idp.saml.attribute.encoding.impl.SAML1StringNameIdentifierEncoder;
import org.opensaml.saml.saml1.core.NameIdentifier;
+import org.springframework.context.support.GenericApplicationContext;
import org.testng.Assert;
import org.testng.annotations.Test;
+import com.google.common.base.Predicates;
+
/**
* Test for {@link SAML1StringNameIdentifierEncoderParser}.
*/
+ at SuppressWarnings("deprecation")
public class SAML1StringNameIdentifierEncoderParserTest extends BaseAttributeDefinitionParserTest {
@Test public void legacy() {
@@ -54,4 +58,16 @@ public class SAML1StringNameIdentifierEncoderParserTest extends BaseAttributeDef
Assert.assertNull(encoder.getNameQualifier());;
}
+ @Test public void conditional() {
+ final GenericApplicationContext context = new GenericApplicationContext();
+ setTestContext(context);
+
+ loadFile(ENCODER_FILE_PATH + "predicates.xml", context);
+
+ final SAML1StringNameIdentifierEncoder encoder =
+ getAttributeEncoder("saml1StringNameIdentifierConditional.xml", SAML1StringNameIdentifierEncoder.class, context);
+
+ Assert.assertSame(encoder.getActivationCondition(), Predicates.alwaysFalse());
+ Assert.assertFalse(encoder.getActivationCondition().apply(null));
+ }
}
\ No newline at end of file
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML2StringNameIDEncoderParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML2StringNameIDEncoderParserTest.java
index d201a46..2698325 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML2StringNameIDEncoderParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML2StringNameIDEncoderParserTest.java
@@ -28,6 +28,7 @@ import org.testng.annotations.Test;
/**
* Test for {@link SAML2StringNameIDEncoderParser}.
*/
+ at SuppressWarnings("deprecation")
public class SAML2StringNameIDEncoderParserTest extends BaseAttributeDefinitionParserTest {
@Test public void legacy() {
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/saml1StringNameIdentifierConditional.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/saml1StringNameIdentifierConditional.xml
new file mode 100644
index 0000000..b1cd1c8
--- /dev/null
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/enc/saml1StringNameIdentifierConditional.xml
@@ -0,0 +1,15 @@
+<resolver:AttributeEncoder
+ xsi:type="enc:SAML1StringNameIdentifier"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:enc="urn:mace:shibboleth:2.0:attribute:encoder"
+ xmlns:resolver="urn:mace:shibboleth:2.0:resolver"
+ nameFormat="NAMEIDENTIFIER_FORMAT"
+ nameQualifier="NAMEIDENTIFIER_QUALIFIER"
+ activationConditionRef="predicate"
+ xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd
+ urn:mace:shibboleth:2.0:resolver:pc http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-pc.xsd
+ urn:mace:shibboleth:2.0:resolver:ad http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-ad.xsd
+ urn:mace:shibboleth:2.0:resolver:dc http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-dc.xsd
+ urn:mace:shibboleth:2.0:attribute:encoder http://shibboleth.net/schema/idp/shibboleth-attribute-encoder.xsd
+ urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"/>
+
\ No newline at end of file
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAML1NameIdentifierEncoder.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAML1NameIdentifierEncoder.java
index 0b3daea..148c3b5 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAML1NameIdentifierEncoder.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAML1NameIdentifierEncoder.java
@@ -30,7 +30,11 @@ import org.opensaml.saml.common.xml.SAMLConstants;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
-/** Base class for {@link SAML1NameIdentifierAttributeEncoder}s. */
+/**
+ * Base class for {@link SAML1NameIdentifierAttributeEncoder}s.
+ *
+ * @deprecated
+ */
public abstract class AbstractSAML1NameIdentifierEncoder extends AbstractInitializableComponent
implements SAML1NameIdentifierAttributeEncoder {
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAML2NameIDEncoder.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAML2NameIDEncoder.java
index ed2c89d..b63b586 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAML2NameIDEncoder.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAML2NameIDEncoder.java
@@ -30,7 +30,11 @@ import org.opensaml.saml.common.xml.SAMLConstants;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
-/** Base class for {@link SAML2NameIDAttributeEncoder}s. */
+/**
+ * Base class for {@link SAML2NameIDAttributeEncoder}s.
+ *
+ * @deprecated
+ */
public abstract class AbstractSAML2NameIDEncoder extends AbstractInitializableComponent
implements SAML2NameIDAttributeEncoder {
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAMLAttributeEncoder.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAMLAttributeEncoder.java
index ac1b4a4..fbac945 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAMLAttributeEncoder.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/attribute/encoding/AbstractSAMLAttributeEncoder.java
@@ -170,8 +170,8 @@ public abstract class AbstractSAMLAttributeEncoder<AttributeType extends SAMLObj
}
if (!canEncodeValue(attribute, o)) {
- log.warn("Skipping value of attribute '{}'; Type {} cannot be encoded by this encoder ({}).", attributeId,
- o.getClass().getName(), this.getClass().getName());
+ log.warn("Skipping value of attribute '{}'; Type {} cannot be encoded by this encoder ({}).",
+ attributeId, o.getClass().getName(), this.getClass().getName());
continue;
}
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIdentifierAttributeEncoder.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIdentifierAttributeEncoder.java
index 6699005..76c7a5d 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIdentifierAttributeEncoder.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/NameIdentifierAttributeEncoder.java
@@ -31,6 +31,8 @@ import com.google.common.base.Predicate;
* support, or not, for a particular name identifier format.</p>
*
* @param <NameIdType> type of object produced
+ *
+ * @deprecated
*/
public interface NameIdentifierAttributeEncoder<NameIdType extends SAMLObject>
extends AttributeEncoder<NameIdType>, Predicate<String> {
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/SAML1NameIdentifierAttributeEncoder.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/SAML1NameIdentifierAttributeEncoder.java
index b3756bc..93e6243 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/SAML1NameIdentifierAttributeEncoder.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/SAML1NameIdentifierAttributeEncoder.java
@@ -22,6 +22,8 @@ import org.opensaml.saml.saml1.core.NameIdentifier;
/**
* Marker interface for {@link net.shibboleth.idp.attribute.AttributeEncoder}
* that produces SAML 1.x {@link NameIdentifier}s instead of attributes.
+ *
+ * @deprecated
*/
public interface SAML1NameIdentifierAttributeEncoder extends NameIdentifierAttributeEncoder<NameIdentifier> {
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/SAML2NameIDAttributeEncoder.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/SAML2NameIDAttributeEncoder.java
index 6912c4e..b51a0a9 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/SAML2NameIDAttributeEncoder.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/nameid/SAML2NameIDAttributeEncoder.java
@@ -23,6 +23,8 @@ import org.opensaml.saml.saml2.core.NameID;
/**
* Marker interface for {@link net.shibboleth.idp.attribute.AttributeEncoder}
* that produces SAML 2.0 {@link NameID}s instead of attributes.
+ *
+ * @deprecated
*/
public interface SAML2NameIDAttributeEncoder extends NameIdentifierAttributeEncoder<NameID> {
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/encoding/impl/SAML1StringNameIdentifierEncoder.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/encoding/impl/SAML1StringNameIdentifierEncoder.java
index 165950b..3ca3631 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/encoding/impl/SAML1StringNameIdentifierEncoder.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/encoding/impl/SAML1StringNameIdentifierEncoder.java
@@ -42,6 +42,8 @@ import com.google.common.base.Objects;
/**
* {@link net.shibboleth.idp.saml.nameid.NameIdentifierAttributeEncoder} that encodes the first String value of an
* {@link net.shibboleth.idp.attribute.IdPAttribute} to a SAML 1 {@link NameIdentifier}.
+ *
+ * @deprecated
*/
public class SAML1StringNameIdentifierEncoder extends AbstractSAML1NameIdentifierEncoder {
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/encoding/impl/SAML2StringNameIDEncoder.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/encoding/impl/SAML2StringNameIDEncoder.java
index 149f873..64adc26 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/encoding/impl/SAML2StringNameIDEncoder.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/encoding/impl/SAML2StringNameIDEncoder.java
@@ -42,6 +42,8 @@ import com.google.common.base.Objects;
/**
* {@link net.shibboleth.idp.saml.nameid.NameIdentifierAttributeEncoder} that encodes the first String value of an
* {@link net.shibboleth.idp.attribute.IdPAttribute} to a SAML 2 {@link NameID}.
+ *
+ * @deprecated
*/
public class SAML2StringNameIDEncoder extends AbstractSAML2NameIDEncoder {
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/TransientIdAttributeDefinition.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/TransientIdAttributeDefinition.java
index 042d4c8..f5d7130 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/TransientIdAttributeDefinition.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/TransientIdAttributeDefinition.java
@@ -46,6 +46,8 @@ import com.google.common.base.Strings;
* The generation in devolved to the supplied {@link TransientIdGenerationStrategy}, which will be a
* {@link net.shibboleth.idp.saml.nameid.impl.StoredTransientIdGenerationStrategy} for the Transient and
* {@link net.shibboleth.idp.saml.nameid.impl.CryptoTransientIdGenerationStrategy} for a CryptoTransient.
+ *
+ * @deprecated
*/
public class TransientIdAttributeDefinition extends AbstractAttributeDefinition {
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacyNameIdentifierGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacyNameIdentifierGenerator.java
index a287b56..d966bbf 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacyNameIdentifierGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacyNameIdentifierGenerator.java
@@ -56,6 +56,8 @@ import com.google.common.base.Predicates;
* which attribute encoders use, in the manner the V2 IdP does.</p>
*
* @param <NameIdType> type of identifier object
+ *
+ * @deprecated
*/
public class LegacyNameIdentifierGenerator<NameIdType extends SAMLObject>
extends AbstractIdentifiableInitializableComponent implements NameIdentifierGenerator<NameIdType> {
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacySAML1NameIdentifierGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacySAML1NameIdentifierGenerator.java
index ff7def7..105b826 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacySAML1NameIdentifierGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacySAML1NameIdentifierGenerator.java
@@ -27,6 +27,8 @@ import org.opensaml.saml.saml1.profile.SAML1NameIdentifierGenerator;
* {@link SAML1NameIdentifierAttributeEncoder}s attached.
*
* <p>See the base class for additional detail.</p>
+ *
+ * @deprecated
*/
public class LegacySAML1NameIdentifierGenerator extends LegacyNameIdentifierGenerator<NameIdentifier>
implements SAML1NameIdentifierGenerator {
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacySAML2NameIDGenerator.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacySAML2NameIDGenerator.java
index fa891f8..c4a9812 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacySAML2NameIDGenerator.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/nameid/impl/LegacySAML2NameIDGenerator.java
@@ -27,6 +27,8 @@ import org.opensaml.saml.saml2.profile.SAML2NameIDGenerator;
* {@link SAML2NameIDAttributeEncoder}s attached.
*
* <p>See the base class for additional detail.</p>
+ *
+ * @deprecated
*/
public class LegacySAML2NameIDGenerator extends LegacyNameIdentifierGenerator<NameID>
implements SAML2NameIDGenerator {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list