[java-shib-attribute] branch main updated: IDP-2083 - Treat NonnullElements as the default for collections
Scott Cantor
cantor.2 at osu.edu
Wed May 3 14:38:34 UTC 2023
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-shib-attribute.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=c143f88ad5a0902c0d033f34b7a26946a6ca5e44
The following commit(s) were added to refs/heads/main by this push:
new c143f88ad IDP-2083 - Treat NonnullElements as the default for collections
c143f88ad is described below
commit c143f88ad5a0902c0d033f34b7a26946a6ca5e44
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed May 3 10:38:31 2023 -0400
IDP-2083 - Treat NonnullElements as the default for collections
https://shibboleth.atlassian.net/browse/IDP-2083
Review attribute-api/impl, saml-attribute-api/impl, filter-api/impl.
---
.../idp/attribute/AttributesMapContainer.java | 9 ++-
.../idp/attribute/ByteAttributeValue.java | 10 +++-
.../idp/attribute/DateTimeAttributeValue.java | 2 +
.../idp/attribute/EmptyAttributeValue.java | 1 +
.../net/shibboleth/idp/attribute/IdPAttribute.java | 12 ++--
.../idp/attribute/IdPAttributeValue.java | 5 +-
.../idp/attribute/IdPRequestedAttribute.java | 6 +-
.../idp/attribute/ScopedStringAttributeValue.java | 6 +-
.../idp/attribute/XMLObjectAttributeValue.java | 1 +
...tractCollectionConfigurationLookupStrategy.java | 41 +++++++-------
...tMetadataDrivenConfigurationLookupStrategy.java | 65 +++++++++++++---------
.../config/BeanConfigurationLookupStrategy.java | 34 ++++++-----
.../config/BooleanConfigurationLookupStrategy.java | 33 ++++++-----
.../config/DoubleConfigurationLookupStrategy.java | 33 ++++++-----
.../DurationConfigurationLookupStrategy.java | 35 ++++++------
.../config/IntegerConfigurationLookupStrategy.java | 37 ++++++------
.../config/ListConfigurationLookupStrategy.java | 10 ++--
.../config/LongConfigurationLookupStrategy.java | 41 +++++++-------
.../config/SetConfigurationLookupStrategy.java | 10 ++--
.../config/StringConfigurationLookupStrategy.java | 50 ++++++++---------
.../idp/attribute/config/package-info.java | 6 +-
.../idp/attribute/context/AttributeContext.java | 14 ++---
.../idp/attribute/context/package-info.java | 4 +-
.../net/shibboleth/idp/attribute/package-info.java | 4 +-
.../transcoding/AttributeTranscoderRegistry.java | 12 ++--
.../attribute/transcoding/TranscoderSupport.java | 5 +-
.../idp/attribute/transcoding/TranscodingRule.java | 21 ++++---
.../idp/attribute/transcoding/package-info.java | 4 +-
.../idp/attribute/filter/AttributeFilter.java | 4 +-
.../attribute/filter/AttributeFilterPolicy.java | 14 ++---
.../idp/attribute/filter/AttributeRule.java | 31 +----------
.../idp/attribute/filter/BaseBridgingClass.java | 32 +++++------
.../shibboleth/idp/attribute/filter/Matcher.java | 18 +++---
.../filter/context/AttributeFilterContext.java | 10 ++--
.../filter/context/AttributeFilterWorkContext.java | 13 ++---
.../idp/attribute/filter/context/package-info.java | 4 +-
.../idp/attribute/filter/package-info.java | 3 +-
.../attribute/filter/impl/AttributeFilterImpl.java | 29 +++++-----
.../idp/attribute/filter/impl/package-info.java | 4 +-
.../filter/matcher/impl/AbstractMatcher.java | 3 +-
.../matcher/impl/AbstractRegexpStringMatcher.java | 22 ++++----
.../filter/matcher/impl/AbstractStringMatcher.java | 5 +-
.../matcher/impl/AttributeScopeRegexpMatcher.java | 6 +-
.../matcher/impl/AttributeValueRegexpMatcher.java | 7 ++-
.../matcher/impl/AttributeValueStringMatcher.java | 9 +--
.../filter/matcher/impl/ScriptedMatcher.java | 18 +++---
.../filter/matcher/impl/package-info.java | 3 +-
.../logic/impl/AbstractComposedMatcher.java | 2 +-
.../filter/matcher/logic/impl/AndMatcher.java | 10 ++--
.../filter/matcher/logic/impl/NotMatcher.java | 5 +-
.../filter/matcher/logic/impl/OrMatcher.java | 10 ++--
.../filter/matcher/logic/impl/package-info.java | 2 +
.../impl/AbstractMatchesShibMDScopeMatcher.java | 9 +--
.../saml/impl/AttributeInMetadataMatcher.java | 19 +++----
.../impl/AttributeScopeMatchesShibMDScope.java | 11 ++--
.../impl/AttributeValueMatchesShibMDScope.java | 9 +--
.../filter/matcher/saml/impl/package-info.java | 5 +-
.../impl/AttributeIssuerPolicyRule.java | 1 -
.../impl/AttributeIssuerRegexpPolicyRule.java | 1 -
.../impl/AttributeRequesterPolicyRule.java | 1 -
.../impl/AttributeRequesterRegexpPolicyRule.java | 1 -
.../impl/NumOfAttributeValuesPolicyRule.java | 1 -
.../filtercontext/impl/PredicatePolicyRule.java | 5 +-
.../impl/PrincipalNamePolicyRule.java | 1 -
.../impl/PrincipalNameRegexpPolicyRule.java | 1 -
.../filtercontext/impl/ProfilePolicyRule.java | 1 -
.../impl/ProxiedRequesterPolicyRule.java | 1 -
.../impl/ProxiedRequesterRegexpPolicyRule.java | 1 -
.../filtercontext/impl/package-info.java | 3 +-
.../filter/policyrule/impl/AbstractPolicyRule.java | 11 +++-
.../policyrule/impl/AbstractRegexpPolicyRule.java | 3 +-
.../policyrule/impl/AbstractStringPolicyRule.java | 5 +-
.../policyrule/impl/DirectionPolicyRule.java | 1 -
.../filter/policyrule/impl/ScriptedPolicyRule.java | 26 ++-------
.../filter/policyrule/impl/package-info.java | 4 +-
.../logic/impl/AbstractComposedPolicyRule.java | 5 +-
.../policyrule/logic/impl/AndPolicyRule.java | 1 -
.../policyrule/logic/impl/NotPolicyRule.java | 4 +-
.../filter/policyrule/logic/impl/OrPolicyRule.java | 1 -
.../filter/policyrule/logic/impl/package-info.java | 4 +-
.../AbstractEntityAttributeExactPolicyRule.java | 4 +-
.../impl/AbstractEntityAttributePolicyRule.java | 51 ++++++++---------
.../saml/impl/AbstractEntityGroupPolicyRule.java | 1 -
.../impl/AbstractNameIDFormatExactPolicyRule.java | 4 +-
.../AbstractRegistrationAuthorityPolicyRule.java | 8 +--
.../filter/policyrule/saml/impl/package-info.java | 4 +-
.../idp/attribute/impl/JDBCPairwiseIdStore.java | 15 +++--
.../idp/attribute/impl/package-info.java | 4 +-
.../impl/AttributeRegistryServiceStrategy.java | 8 +--
.../impl/AttributeTranscoderRegistryImpl.java | 39 ++++++-------
.../transcoding/impl/TranscodingRuleLoader.java | 22 ++++----
.../attribute/transcoding/impl/package-info.java | 4 +-
.../impl/testing/SAMLAttributeDataConnector.java | 18 +++---
.../resolver/dc/impl/testing/package-info.java | 4 +-
.../resolver/testing/MockDataConnector.java | 16 ++----
.../testing/MockStaticAttributeDefinition.java | 20 +++----
.../resolver/testing/MockStaticDataConnector.java | 27 +++++----
.../attribute/resolver/testing/TestSources.java | 46 ++++++++-------
.../attribute/resolver/testing/package-info.java | 4 +-
.../AbstractSAML1AttributeTranscoder.java | 8 +--
.../AbstractSAML2AttributeTranscoder.java | 8 +--
.../AbstractSAMLAttributeTranscoder.java | 42 +++++++-------
.../attribute/transcoding/SAMLEncoderSupport.java | 4 +-
.../saml/attribute/transcoding/package-info.java | 4 +-
.../impl/AttributeMappingNodeProcessor.java | 10 ++--
.../idp/saml/attribute/impl/package-info.java | 4 +-
.../SAML1NameIdentifierAttributeDefinition.java | 16 +++---
.../impl/SAML2NameIDAttributeDefinition.java | 16 +++---
.../saml/attribute/resolver/impl/package-info.java | 4 +-
.../impl/SAML1ByteAttributeTranscoder.java | 18 +++---
.../impl/SAML1ScopedStringAttributeTranscoder.java | 18 +++---
.../impl/SAML1StringAttributeTranscoder.java | 18 +++---
.../impl/SAML1XMLObjectAttributeTranscoder.java | 8 +--
.../impl/SAML2ByteAttributeTranscoder.java | 17 +++---
.../impl/SAML2DateTimeAttributeTranscoder.java | 32 +++++------
.../impl/SAML2ScopedStringAttributeTranscoder.java | 17 +++---
.../impl/SAML2StringAttributeTranscoder.java | 17 +++---
.../impl/SAML2XMLObjectAttributeTranscoder.java | 17 +++---
.../attribute/transcoding/impl/package-info.java | 4 +-
119 files changed, 737 insertions(+), 755 deletions(-)
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/AttributesMapContainer.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/AttributesMapContainer.java
index 1764c56d4..995847dd5 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/AttributesMapContainer.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/AttributesMapContainer.java
@@ -26,7 +26,6 @@ import javax.annotation.Nonnull;
import com.google.common.collect.Multimap;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -40,20 +39,20 @@ import net.shibboleth.shared.logic.Constraint;
public final class AttributesMapContainer implements Supplier<Multimap<String,IdPAttribute>> {
/** The map we are encapsulating.*/
- @Nonnull @NonnullElements private final Multimap<String,IdPAttribute> providedValue;
+ @Nonnull private final Multimap<String,IdPAttribute> providedValue;
/**
* Constructor.
*
* @param value the value to return.
*/
- public AttributesMapContainer(@Nonnull @NonnullElements final Multimap<String,IdPAttribute> value) {
+ public AttributesMapContainer(@Nonnull final Multimap<String,IdPAttribute> value) {
providedValue = Constraint.isNotNull(value, "Attribute Map cannot be null");
}
/** {@inheritDoc} */
@Override
- @Nonnull @NonnullElements public Multimap<String,IdPAttribute> get() {
+ @Nonnull public Multimap<String,IdPAttribute> get() {
return providedValue;
}
@@ -65,7 +64,7 @@ public final class AttributesMapContainer implements Supplier<Multimap<String,Id
*
* @return unmodifiable collection of string values
*/
- @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<String> getStringValues(
+ @Nonnull @NotLive @Unmodifiable public Collection<String> getStringValues(
@Nonnull @NotEmpty final String id) {
return providedValue.get(id)
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ByteAttributeValue.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ByteAttributeValue.java
index b189af9ee..411445407 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ByteAttributeValue.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ByteAttributeValue.java
@@ -47,10 +47,12 @@ public final class ByteAttributeValue implements IdPAttributeValue {
value = Constraint.isNotEmpty(attributeValue, "Attribute value cannot be null or empty");
}
- /** Return the value.
+ /**
+ * Return the value.
+ *
* @return the value
*/
- public byte[] getValue() {
+ @Nonnull public byte[] getValue() {
return value;
}
@@ -69,6 +71,7 @@ public final class ByteAttributeValue implements IdPAttributeValue {
*
* @return a hex-encoded string
*/
+ @SuppressWarnings("null")
@Nonnull public String toHex() {
final String result = Hex.encodeHexString(value);
assert result != null;
@@ -129,4 +132,5 @@ public final class ByteAttributeValue implements IdPAttributeValue {
return new ByteAttributeValue(value);
}
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/DateTimeAttributeValue.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/DateTimeAttributeValue.java
index 56864ae90..7ccf43031 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/DateTimeAttributeValue.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/DateTimeAttributeValue.java
@@ -54,6 +54,7 @@ public class DateTimeAttributeValue implements IdPAttributeValue {
*
* @param attributeValue the attribute value
*/
+ @SuppressWarnings("null")
public DateTimeAttributeValue(
@Nonnull @ParameterName(name="attributeValue") final ZonedDateTime attributeValue) {
final Instant val = Constraint.isNotNull(attributeValue, "Attribute value cannot be null or empty").toInstant();
@@ -74,6 +75,7 @@ public class DateTimeAttributeValue implements IdPAttributeValue {
}
/** {@inheritDoc} */
+ @SuppressWarnings("null")
@Nonnull @NotEmpty public String getDisplayValue() {
final String result = value.toString();
assert result != null;
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/EmptyAttributeValue.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/EmptyAttributeValue.java
index 9d22f51d5..6186a0d9c 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/EmptyAttributeValue.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/EmptyAttributeValue.java
@@ -74,6 +74,7 @@ public final class EmptyAttributeValue implements IdPAttributeValue {
}
/** {@inheritDoc} */
+ @SuppressWarnings("null")
@Nonnull @NotEmpty public String getDisplayValue() {
final String result = value.toString();
assert result != null;
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
index 334d6e4dd..3acfe4ad5 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
@@ -33,7 +33,6 @@ import com.google.common.base.Objects;
import net.shibboleth.idp.attribute.EmptyAttributeValue.EmptyType;
import net.shibboleth.shared.annotation.ParameterName;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.NullableElements;
@@ -56,7 +55,8 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class IdPAttribute implements Comparable<IdPAttribute>, Cloneable {
/** Value for testing illegal name. */
- private static final Predicate<String> SPACE_CONTAINING = Pattern.compile("\\S*").asMatchPredicate();
+ @SuppressWarnings("null")
+ @Nonnull private static final Predicate<String> SPACE_CONTAINING = Pattern.compile("\\S*").asMatchPredicate();
/** Logger - static. */
@Nonnull private static final Logger LOG = LoggerFactory.getLogger(IdPAttribute.class);
@@ -121,19 +121,21 @@ public class IdPAttribute implements Comparable<IdPAttribute>, Cloneable {
*
* @return values of the attribute
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive public List<IdPAttributeValue> getValues() {
+ @Nonnull @Unmodifiable @NotLive public List<IdPAttributeValue> getValues() {
return values;
}
/**
* Replaces the existing values for this attribute with the given values.
*
+ * <p>Nulls are replaced inline by an {@link EmptyAttributeValue} suitably initialized.</p>
+ *
* @param newValues the new values for this attribute
*/
public void setValues(@Nullable @NullableElements final List<IdPAttributeValue> newValues) {
if (newValues != null) {
values = newValues.stream().
- map(e -> e==null? new EmptyAttributeValue(EmptyType.NULL_VALUE) :e).
+ map(e -> e == null ? new EmptyAttributeValue(EmptyType.NULL_VALUE) : e).
collect(CollectionSupport.nonnullCollector(Collectors.toUnmodifiableList())).
get();
} else {
@@ -211,4 +213,4 @@ public class IdPAttribute implements Comparable<IdPAttribute>, Cloneable {
return result;
}
-}
+}
\ No newline at end of file
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttributeValue.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttributeValue.java
index 141c91825..2e5ef40cb 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttributeValue.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttributeValue.java
@@ -51,9 +51,8 @@ public interface IdPAttributeValue extends Comparable<IdPAttributeValue> {
@Nonnull @NotEmpty String getDisplayValue();
/** {@inheritDoc} */
- default int compareTo(IdPAttributeValue value) {
+ default int compareTo(final IdPAttributeValue value) {
return getDisplayValue().compareTo(value.getDisplayValue());
}
-
-
+
}
\ No newline at end of file
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPRequestedAttribute.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPRequestedAttribute.java
index 672111d68..afe886262 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPRequestedAttribute.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPRequestedAttribute.java
@@ -19,10 +19,12 @@ package net.shibboleth.idp.attribute;
import javax.annotation.Nonnull;
+import org.opensaml.saml.saml2.metadata.RequestedAttribute;
+
import net.shibboleth.shared.annotation.ParameterName;
/**
- * IdP Representation of the SAML2 RequestedAttribute.
+ * IdP representation of {@link RequestedAttribute}.
*/
public final class IdPRequestedAttribute extends IdPAttribute {
@@ -34,7 +36,7 @@ public final class IdPRequestedAttribute extends IdPAttribute {
*
* @param attributeId the id
*/
- public IdPRequestedAttribute(@Nonnull final @ParameterName(name="attributeId") String attributeId) {
+ public IdPRequestedAttribute(@ParameterName(name="attributeId") @Nonnull final String attributeId) {
super(attributeId);
}
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ScopedStringAttributeValue.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ScopedStringAttributeValue.java
index 4d0c9b71b..026a5c88c 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ScopedStringAttributeValue.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/ScopedStringAttributeValue.java
@@ -106,7 +106,8 @@ public final class ScopedStringAttributeValue extends StringAttributeValue {
* @param scope of the value
* @return {@link EmptyAttributeValue} or {@link ScopedStringAttributeValue}
*/
- @Nonnull public static IdPAttributeValue valueOf(@Nullable final String value, @Nonnull @NotEmpty final String scope) {
+ @Nonnull public static IdPAttributeValue valueOf(@Nullable final String value,
+ @Nonnull @NotEmpty final String scope) {
if (value == null) {
return EmptyAttributeValue.NULL;
} else if (value.length() == 0) {
@@ -115,4 +116,5 @@ public final class ScopedStringAttributeValue extends StringAttributeValue {
return new ScopedStringAttributeValue(value, scope);
}
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/XMLObjectAttributeValue.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/XMLObjectAttributeValue.java
index 0722772a5..204d15c82 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/XMLObjectAttributeValue.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/XMLObjectAttributeValue.java
@@ -111,4 +111,5 @@ public final class XMLObjectAttributeValue implements IdPAttributeValue {
public String toString() {
return MoreObjects.toStringHelper(this).add("value", value).toString();
}
+
}
\ No newline at end of file
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractCollectionConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractCollectionConfigurationLookupStrategy.java
index cbf48d2d0..3c4b3314c 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractCollectionConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractCollectionConfigurationLookupStrategy.java
@@ -52,7 +52,8 @@ public abstract class AbstractCollectionConfigurationLookupStrategy<T1,T2>
extends AbstractMetadataDrivenConfigurationLookupStrategy<T2> {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(AbstractCollectionConfigurationLookupStrategy.class);
+ @Nonnull
+ private static final Logger LOG = LoggerFactory.getLogger(AbstractCollectionConfigurationLookupStrategy.class);
/** Type of bean in collection. */
@NonnullAfterInit private Class<T1> propertyType;
@@ -95,7 +96,9 @@ public abstract class AbstractCollectionConfigurationLookupStrategy<T1,T2>
*
* @throws ReflectiveOperationException if the attempt fails
*/
- protected T1 createInstanceFromString(@Nonnull @NotEmpty final String input) throws ReflectiveOperationException {
+ @SuppressWarnings("null")
+ @Nonnull protected T1 createInstanceFromString(@Nonnull @NotEmpty final String input)
+ throws ReflectiveOperationException {
if (propertyType.isAssignableFrom(input.getClass())) {
return propertyType.cast(input);
}
@@ -112,30 +115,30 @@ public abstract class AbstractCollectionConfigurationLookupStrategy<T1,T2>
* @return the converted value, or null
*/
@Nullable protected String xmlObjectToString(@Nonnull final XMLObject object) {
- if (object instanceof XSString) {
- return ((XSString) object).getValue();
- } else if (object instanceof XSURI) {
- return ((XSURI) object).getURI();
- } else if (object instanceof XSBoolean) {
- final XSBooleanValue value = ((XSBoolean) object).getValue();
+ if (object instanceof XSString val) {
+ return val.getValue();
+ } else if (object instanceof XSURI val) {
+ return val.getURI();
+ } else if (object instanceof XSBoolean val) {
+ final XSBooleanValue value = val.getValue();
return value != null ? (value.getValue() ? "1" : "0") : null;
- } else if (object instanceof XSInteger) {
- final Integer value = ((XSInteger) object).getValue();
+ } else if (object instanceof XSInteger val) {
+ final Integer value = val.getValue();
return value != null ? value.toString() : null;
- } else if (object instanceof XSDateTime) {
- final Instant dt = ((XSDateTime) object).getValue();
+ } else if (object instanceof XSDateTime val) {
+ final Instant dt = val.getValue();
return dt != null ? Long.toString(dt.toEpochMilli()) : null;
- } else if (object instanceof XSBase64Binary) {
- return ((XSBase64Binary) object).getValue();
- } else if (object instanceof XSAny) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- return wc.getTextContent();
+ } else if (object instanceof XSBase64Binary val) {
+ return val.getValue();
+ } else if (object instanceof XSAny val) {
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ return val.getTextContent();
}
}
- log.debug("Unsupported conversion to String from XMLObject type ({})", object.getClass().getName());
+ LOG.debug("Unsupported conversion to String from XMLObject type ({})", object.getClass().getName());
return null;
}
// Checkstyle: CyclomaticComplexity ON
+
}
\ No newline at end of file
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractMetadataDrivenConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractMetadataDrivenConfigurationLookupStrategy.java
index 2fa58b602..042604d5b 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractMetadataDrivenConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/AbstractMetadataDrivenConfigurationLookupStrategy.java
@@ -46,7 +46,6 @@ import net.shibboleth.idp.attribute.AttributesMapContainer;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.shared.annotation.constraint.Live;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.collection.LockableClassToInstanceMultiMap;
@@ -83,7 +82,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
/** Class logger. */
@Nonnull
- private final Logger log = LoggerFactory.getLogger(AbstractMetadataDrivenConfigurationLookupStrategy.class);
+ private static final Logger LOG = LoggerFactory.getLogger(AbstractMetadataDrivenConfigurationLookupStrategy.class);
/** Require use of URI attribute name format. */
private boolean strictNameFormat;
@@ -104,10 +103,10 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
@Nullable @NotEmpty private String legacyPropertyName;
/** The "full" property identifiers to support. */
- @NonnullAfterInit @NonnullElements private Collection<String> propertyAliases;
+ @NonnullAfterInit private Collection<String> propertyAliases;
/** Legacy "full" property identifiers to support. */
- @Nullable @NonnullElements private Collection<String> legacyPropertyAliases;
+ @Nullable private Collection<String> legacyPropertyAliases;
/** Default to return in the absence of a property. */
@Nonnull private Function<BaseContext,T> defaultValueStrategy;
@@ -184,6 +183,20 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
explicitPropertyName = flag;
}
+ /**
+ * Gets the "base" name of the property/setting to derive.
+ *
+ * <p>Callable only after init.</p>
+ *
+ * @return property name
+ */
+ @SuppressWarnings("null")
+ @Nonnull private String ensurePropertyName() {
+ checkComponentActive();
+
+ return propertyName;
+ }
+
/**
* Sets the "base" name of the property/setting to derive.
*
@@ -216,7 +229,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
*
* @param aliases alternative profile IDs
*/
- public void setProfileAliases(@Nonnull @NonnullElements final Collection<String> aliases) {
+ public void setProfileAliases(@Nonnull final Collection<String> aliases) {
checkSetterPreconditions();
Constraint.isNotNull(aliases, "Alias collection cannot be null");
@@ -312,6 +325,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
// Checkstyle: CyclomaticComplexity|MethodLength|ReturnCount OFF
/** {@inheritDoc} */
+ @SuppressWarnings("unchecked")
@Nullable public T apply(@Nullable final BaseContext input) {
checkComponentActive();
@@ -320,8 +334,8 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
if (enableCaching && input != null) {
cacheContext = input.ensureSubcontext(CachedConfigurationContext.class);
if (cacheContext.getPropertyMap().containsKey(propertyName)) {
- log.debug("Returning cached property '{}'", propertyName);
- return (T) cacheContext.getPropertyMap().get(propertyName);
+ LOG.debug("Returning cached property '{}'", propertyName);
+ return (T) cacheContext.getPropertyMap().get(ensurePropertyName());
}
}
@@ -337,7 +351,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
}
if (entity == null) {
- log.debug("No metadata available for relying party, applying default strategy for '{}'", propertyName);
+ LOG.debug("No metadata available for relying party, applying default strategy for '{}'", propertyName);
return defaultValueStrategy.apply(input);
}
@@ -361,11 +375,11 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
// Look for "primary" tag name based on profile/property using mapped tags.
IdPAttribute idpAttribute = findMatchingMappedTag(entity,
- profileId != null ? profileId + '/' + propertyName : propertyName);
+ profileId != null ? profileId + '/' + ensurePropertyName() : ensurePropertyName());
Optional<T> result = processMappedTag(idpAttribute, cacheContext);
if (result != null) {
assert idpAttribute != null;
- log.debug("Found matching mapped tag '{}' for property '{}'", idpAttribute.getId(), propertyName);
+ LOG.debug("Found matching mapped tag '{}' for property '{}'", idpAttribute.getId(), propertyName);
return result.orElse(null);
}
@@ -376,7 +390,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
result = processMappedTag(idpAttribute, cacheContext);
if (result != null) {
assert idpAttribute != null;
- log.debug("Found matching mapped tag '{}' for property '{}'", idpAttribute.getId(), propertyName);
+ LOG.debug("Found matching mapped tag '{}' for property '{}'", idpAttribute.getId(), propertyName);
return result.orElse(null);
}
}
@@ -390,7 +404,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
result = processMappedTag(idpAttribute, cacheContext);
if (result != null) {
assert idpAttribute != null;
- log.debug("Found matching mapped tag '{}' for property '{}'", idpAttribute.getId(), propertyName);
+ LOG.debug("Found matching mapped tag '{}' for property '{}'", idpAttribute.getId(), propertyName);
DeprecationSupport.warnOnce(ObjectType.PROPERTY, legacy, "SAML Metadata EntityAttribute", propertyName);
return result.orElse(null);
}
@@ -403,7 +417,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
result = processMappedTag(idpAttribute, cacheContext);
if (result != null) {
assert idpAttribute != null;
- log.debug("Found matching mapped tag '{}' for property '{}'", idpAttribute.getId(),
+ LOG.debug("Found matching mapped tag '{}' for property '{}'", idpAttribute.getId(),
propertyName);
DeprecationSupport.warnOnce(ObjectType.PROPERTY, legacy, "SAML Metadata EntityAttribute",
propertyName);
@@ -414,7 +428,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
}
if (ignoreUnmappedEntityAttributes) {
- log.debug("No applicable mapped tag, applying default strategy for '{}'", propertyName);
+ LOG.debug("No applicable mapped tag, applying default strategy for '{}'", propertyName);
final T ret = defaultValueStrategy.apply(input);
if (enableCaching) {
assert cacheContext != null;
@@ -425,21 +439,22 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
// Look for "primary" tag name based on profile/property.
Attribute attribute = findMatchingTag(entity,
- profileId != null ? profileId + '/' + propertyName : propertyName);
+ profileId != null ? profileId + '/' + ensurePropertyName() : ensurePropertyName());
result = processTag(attribute, cacheContext);
if (result != null) {
assert attribute != null;
- log.debug("Found matching tag '{}' for property '{}'", attribute.getName(), propertyName);
+ LOG.debug("Found matching tag '{}' for property '{}'", attribute.getName(), propertyName);
return result.orElse(null);
}
// Check aliases.
for (final String alias : propertyAliases) {
+ assert alias != null;
attribute = findMatchingTag(entity, alias);
result = processTag(attribute, cacheContext);
if (result != null) {
assert attribute != null;
- log.debug("Found matching tag '{}' for property '{}'", attribute.getName(), propertyName);
+ LOG.debug("Found matching tag '{}' for property '{}'", attribute.getName(), propertyName);
return result.orElse(null);
}
}
@@ -453,7 +468,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
result = processTag(attribute, cacheContext);
if (result != null) {
assert attribute != null;
- log.debug("Found matching tag '{}' for property '{}'", attribute.getName(), propertyName);
+ LOG.debug("Found matching tag '{}' for property '{}'", attribute.getName(), propertyName);
DeprecationSupport.warnOnce(ObjectType.PROPERTY, legacy, "SAML Metadata EntityAttribute", propertyName);
return result.orElse(null);
}
@@ -466,7 +481,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
result = processMappedTag(idpAttribute, cacheContext);
if (result != null) {
assert attribute != null;
- log.debug("Found matching tag '{}' for property '{}'", attribute.getName(), propertyName);
+ LOG.debug("Found matching tag '{}' for property '{}'", attribute.getName(), propertyName);
DeprecationSupport.warnOnce(ObjectType.PROPERTY, legacy, "SAML Metadata EntityAttribute",
propertyName);
return result.orElse(null);
@@ -475,7 +490,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
}
}
- log.debug("No applicable tag, applying default strategy for '{}'", propertyName);
+ LOG.debug("No applicable tag, applying default strategy for '{}'", propertyName);
final T ret = defaultValueStrategy.apply(input);
if (enableCaching) {
assert cacheContext != null;
@@ -496,7 +511,7 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
final List<XMLObject> values = tag.getAttributeValues();
if (values == null || values.isEmpty()) {
- log.debug("Tag '{}' contained no values, no setting returned for '{}'", tag.getName(), propertyName);
+ LOG.debug("Tag '{}' contained no values, no setting returned for '{}'", tag.getName(), propertyName);
return null;
}
@@ -623,8 +638,8 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
Extensions exts = entity.getExtensions();
if (exts != null) {
final List<XMLObject> children = exts.getUnknownXMLObjects(EntityAttributes.DEFAULT_ELEMENT_NAME);
- if (!children.isEmpty() && children.get(0) instanceof EntityAttributes) {
- final Attribute tag = findMatchingTag((EntityAttributes) children.get(0), name);
+ if (!children.isEmpty() && children.get(0) instanceof EntityAttributes attr) {
+ final Attribute tag = findMatchingTag(attr, name);
if (tag != null) {
return tag;
}
@@ -636,8 +651,8 @@ public abstract class AbstractMetadataDrivenConfigurationLookupStrategy<T> exten
exts = group.getExtensions();
if (exts != null) {
final List<XMLObject> children = exts.getUnknownXMLObjects(EntityAttributes.DEFAULT_ELEMENT_NAME);
- if (!children.isEmpty() && children.get(0) instanceof EntityAttributes) {
- final Attribute tag = findMatchingTag((EntityAttributes) children.get(0), name);
+ if (!children.isEmpty() && children.get(0) instanceof EntityAttributes attr) {
+ final Attribute tag = findMatchingTag(attr, name);
if (tag != null) {
return tag;
}
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java
index 8c3eab15c..11e64611d 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BeanConfigurationLookupStrategy.java
@@ -55,7 +55,7 @@ public class BeanConfigurationLookupStrategy<T> extends AbstractMetadataDrivenCo
implements ApplicationContextAware {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(BeanConfigurationLookupStrategy.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(BeanConfigurationLookupStrategy.class);
/** Enclosing Spring context. */
@NonnullAfterInit private ApplicationContext applicationContext;
@@ -100,23 +100,22 @@ public class BeanConfigurationLookupStrategy<T> extends AbstractMetadataDrivenCo
final List<IdPAttributeValue> values = tag.getValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getId());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getId());
return null;
}
- log.debug("Converting tag '{}' to Bean property of tyoe '{}'", tag.getId(), propertyType.getSimpleName());
+ LOG.debug("Converting tag '{}' to Bean property of tyoe '{}'", tag.getId(), propertyType.getSimpleName());
final IdPAttributeValue value = values.get(0);
- if (value instanceof StringAttributeValue) {
+ if (value instanceof StringAttributeValue strval) {
try {
- return applicationContext.getBean(((StringAttributeValue) value).getValue(), propertyType);
+ return applicationContext.getBean(strval.getValue(), propertyType);
} catch (final BeansException e) {
- log.error("Error locating appropriately typed bean named {}",
- ((StringAttributeValue) value).getValue(), e);
+ LOG.error("Error locating appropriately typed bean named {}", strval.getValue(), e);
return null;
}
}
- log.error("Tag '{}' contained non-string value, returning null");
+ LOG.error("Tag '{}' contained non-string value, returning null");
return null;
}
@@ -126,11 +125,11 @@ public class BeanConfigurationLookupStrategy<T> extends AbstractMetadataDrivenCo
final List<XMLObject> values = tag.getAttributeValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getName());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getName());
return null;
}
- log.debug("Converting tag '{}' to Bean property of tyoe '{}'", tag.getName(), propertyType.getSimpleName());
+ LOG.debug("Converting tag '{}' to Bean property of tyoe '{}'", tag.getName(), propertyType.getSimpleName());
final XMLObject value = values.get(0);
assert value != null;
return xmlObjectToBean(value);
@@ -145,12 +144,11 @@ public class BeanConfigurationLookupStrategy<T> extends AbstractMetadataDrivenCo
*/
@Nullable private T xmlObjectToBean(@Nonnull final XMLObject object) {
String value = null;
- if (object instanceof XSString) {
- value = ((XSString) object).getValue();
- } else if (object instanceof XSAny) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- value = wc.getTextContent();
+ if (object instanceof XSString val) {
+ value = val.getValue();
+ } else if (object instanceof XSAny val) {
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ value = val.getTextContent();
}
}
@@ -159,12 +157,12 @@ public class BeanConfigurationLookupStrategy<T> extends AbstractMetadataDrivenCo
assert propertyType != null;
return applicationContext.getBean(value, propertyType);
} catch (final BeansException e) {
- log.error("Error locating appropriately typed bean named {}", value, e);
+ LOG.error("Error locating appropriately typed bean named {}", value, e);
return null;
}
}
- log.error("Unsupported conversion to Spring bean from XMLObject type ({})", object.getClass().getName());
+ LOG.error("Unsupported conversion to Spring bean from XMLObject type ({})", object.getClass().getName());
return null;
}
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BooleanConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BooleanConfigurationLookupStrategy.java
index b7052e45f..1c5ecae50 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BooleanConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/BooleanConfigurationLookupStrategy.java
@@ -45,7 +45,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class BooleanConfigurationLookupStrategy extends AbstractMetadataDrivenConfigurationLookupStrategy<Boolean> {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(BooleanConfigurationLookupStrategy.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(BooleanConfigurationLookupStrategy.class);
/** {@inheritDoc} */
@Override
@@ -53,17 +53,17 @@ public class BooleanConfigurationLookupStrategy extends AbstractMetadataDrivenCo
final List<IdPAttributeValue> values = tag.getValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getId());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getId());
return null;
}
- log.debug("Converting tag '{}' to Boolean property", tag.getId());
+ LOG.debug("Converting tag '{}' to Boolean property", tag.getId());
final IdPAttributeValue value = values.get(0);
if (value instanceof StringAttributeValue) {
return XSBooleanValue.valueOf(((StringAttributeValue) value).getValue()).getValue();
}
- log.error("Tag '{}' contained non-string value, returning null");
+ LOG.error("Tag '{}' contained non-string value, returning null");
return null;
}
@@ -73,11 +73,11 @@ public class BooleanConfigurationLookupStrategy extends AbstractMetadataDrivenCo
final List<XMLObject> values = tag.getAttributeValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getName());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getName());
return null;
}
- log.debug("Converting tag '{}' to Boolean property", tag.getName());
+ LOG.debug("Converting tag '{}' to Boolean property", tag.getName());
final XMLObject value = values.get(0);
assert value != null;
return xmlObjectToBoolean(value);
@@ -92,22 +92,21 @@ public class BooleanConfigurationLookupStrategy extends AbstractMetadataDrivenCo
* @return the converted value, or null
*/
@Nullable private Boolean xmlObjectToBoolean(@Nonnull final XMLObject object) {
- if (object instanceof XSString) {
- final String value = ((XSString) object).getValue();
+ if (object instanceof XSString val) {
+ final String value = val.getValue();
if (value != null) {
return XSBooleanValue.valueOf(value).getValue();
}
return null;
- } else if (object instanceof XSBoolean) {
- final XSBooleanValue value = ((XSBoolean) object).getValue();
+ } else if (object instanceof XSBoolean val) {
+ final XSBooleanValue value = val.getValue();
return value != null ? value.getValue() : null;
- } else if (object instanceof XSInteger) {
- final Integer value = ((XSInteger) object).getValue();
+ } else if (object instanceof XSInteger val) {
+ final Integer value = val.getValue();
return value != null ? value != 0 : null;
- } else if (object instanceof XSAny) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- final String value = wc.getTextContent();
+ } else if (object instanceof XSAny val) {
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ final String value = val.getTextContent();
if (value != null) {
return XSBooleanValue.valueOf(value).getValue();
}
@@ -115,7 +114,7 @@ public class BooleanConfigurationLookupStrategy extends AbstractMetadataDrivenCo
}
}
- log.error("Unsupported conversion to Boolean from XMLObject type ({})", object.getClass().getName());
+ LOG.error("Unsupported conversion to Boolean from XMLObject type ({})", object.getClass().getName());
return null;
}
// Checkstyle: CyclomaticComplexity ON
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DoubleConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DoubleConfigurationLookupStrategy.java
index 2f924d0b9..89c6a3283 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DoubleConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DoubleConfigurationLookupStrategy.java
@@ -45,7 +45,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class DoubleConfigurationLookupStrategy extends AbstractMetadataDrivenConfigurationLookupStrategy<Double> {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(DoubleConfigurationLookupStrategy.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(DoubleConfigurationLookupStrategy.class);
/** {@inheritDoc} */
@Override
@@ -53,17 +53,17 @@ public class DoubleConfigurationLookupStrategy extends AbstractMetadataDrivenCon
final List<IdPAttributeValue> values = tag.getValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getId());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getId());
return null;
}
- log.debug("Converting tag '{}' to Double property", tag.getId());
+ LOG.debug("Converting tag '{}' to Double property", tag.getId());
final IdPAttributeValue value = values.get(0);
if (value instanceof StringAttributeValue) {
return Double.valueOf(((StringAttributeValue) value).getValue());
}
- log.error("Tag '{}' contained non-string value, returning null");
+ LOG.error("Tag '{}' contained non-string value, returning null");
return null;
}
@@ -73,11 +73,11 @@ public class DoubleConfigurationLookupStrategy extends AbstractMetadataDrivenCon
final List<XMLObject> values = tag.getAttributeValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getName());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getName());
return null;
}
- log.debug("Converting tag '{}' to Double property", tag.getName());
+ LOG.debug("Converting tag '{}' to Double property", tag.getName());
final XMLObject value = values.get(0);
assert value != null;
return xmlObjectToDouble(value);
@@ -92,24 +92,23 @@ public class DoubleConfigurationLookupStrategy extends AbstractMetadataDrivenCon
* @return the converted value, or null
*/
@Nullable private Double xmlObjectToDouble(@Nonnull final XMLObject object) {
- if (object instanceof XSString) {
- final String value = ((XSString) object).getValue();
+ if (object instanceof XSString val) {
+ final String value = val.getValue();
return value != null ? Double.valueOf(value) : null;
- } else if (object instanceof XSBoolean) {
- final XSBooleanValue value = ((XSBoolean) object).getValue();
+ } else if (object instanceof XSBoolean val) {
+ final XSBooleanValue value = val.getValue();
return value != null ? (value.getValue() ? 1.0 : 0.0) : null;
- } else if (object instanceof XSInteger) {
- final Integer value = ((XSInteger) object).getValue();
+ } else if (object instanceof XSInteger val) {
+ final Integer value = val.getValue();
return value != null ? value.doubleValue() : null;
- } else if (object instanceof XSAny) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- final String value = wc.getTextContent();
+ } else if (object instanceof XSAny val) {
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ final String value = val.getTextContent();
return value != null ? Double.valueOf(value) : null;
}
}
- log.error("Unsupported conversion to Double from XMLObject type ({})", object.getClass().getName());
+ LOG.error("Unsupported conversion to Double from XMLObject type ({})", object.getClass().getName());
return null;
}
// Checkstyle: CyclomaticComplexity ON
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DurationConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DurationConfigurationLookupStrategy.java
index eee2769b2..ef37246cb 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DurationConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/DurationConfigurationLookupStrategy.java
@@ -47,7 +47,7 @@ import net.shibboleth.shared.spring.config.StringToDurationConverter;
public class DurationConfigurationLookupStrategy extends AbstractMetadataDrivenConfigurationLookupStrategy<Duration> {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(DurationConfigurationLookupStrategy.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(DurationConfigurationLookupStrategy.class);
/** Converter to handle duration strings. */
@Nonnull private final Converter<String,Duration> durationConverter;
@@ -63,22 +63,22 @@ public class DurationConfigurationLookupStrategy extends AbstractMetadataDrivenC
final List<IdPAttributeValue> values = tag.getValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getId());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getId());
return null;
}
- log.debug("Converting tag '{}' to Duration property", tag.getId());
+ LOG.debug("Converting tag '{}' to Duration property", tag.getId());
final IdPAttributeValue value = values.get(0);
if (value instanceof StringAttributeValue) {
try {
return durationConverter.convert(((StringAttributeValue) value).getValue());
} catch (final IllegalArgumentException e) {
- log.error("Error converting duration", e);
+ LOG.error("Error converting duration", e);
return null;
}
}
- log.error("Tag '{}' contained non-string value, returning null");
+ LOG.error("Tag '{}' contained non-string value, returning null");
return null;
}
@@ -88,11 +88,11 @@ public class DurationConfigurationLookupStrategy extends AbstractMetadataDrivenC
final List<XMLObject> values = tag.getAttributeValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getName());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getName());
return null;
}
- log.debug("Converting tag '{}' to Duration property", tag.getName());
+ LOG.debug("Converting tag '{}' to Duration property", tag.getName());
final XMLObject value = values.get(0);
assert value != null;
return xmlObjectToDuration(value);
@@ -107,29 +107,28 @@ public class DurationConfigurationLookupStrategy extends AbstractMetadataDrivenC
* @return the converted value, or null
*/
@Nullable private Duration xmlObjectToDuration(@Nonnull final XMLObject object) {
- if (object instanceof XSString) {
- final String value = ((XSString) object).getValue();
+ if (object instanceof XSString val) {
+ final String value = val.getValue();
if (value != null) {
try {
return durationConverter.convert(value);
} catch (final IllegalArgumentException e) {
- log.error("Error converting duration", e);
+ LOG.error("Error converting duration", e);
return null;
}
}
return null;
- } else if (object instanceof XSInteger) {
- final Integer value = ((XSInteger) object).getValue();
+ } else if (object instanceof XSInteger val) {
+ final Integer value = val.getValue();
return value != null ? Duration.ofMillis(value.longValue()) : null;
- } else if (object instanceof XSAny) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- final String value = wc.getTextContent();
+ } else if (object instanceof XSAny val) {
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ final String value = val.getTextContent();
if (value != null) {
try {
return durationConverter.convert(value);
} catch (final IllegalArgumentException e) {
- log.error("Error converting duration", e);
+ LOG.error("Error converting duration", e);
return null;
}
}
@@ -137,7 +136,7 @@ public class DurationConfigurationLookupStrategy extends AbstractMetadataDrivenC
}
}
- log.error("Unsupported conversion to Duration from XMLObject type ({})", object.getClass().getName());
+ LOG.error("Unsupported conversion to Duration from XMLObject type ({})", object.getClass().getName());
return null;
}
// Checkstyle: CyclomaticComplexity ON
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/IntegerConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/IntegerConfigurationLookupStrategy.java
index 7297f8c7c..d912f9996 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/IntegerConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/IntegerConfigurationLookupStrategy.java
@@ -45,7 +45,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class IntegerConfigurationLookupStrategy extends AbstractMetadataDrivenConfigurationLookupStrategy<Integer> {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(IntegerConfigurationLookupStrategy.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(IntegerConfigurationLookupStrategy.class);
/** {@inheritDoc} */
@Override
@@ -53,17 +53,17 @@ public class IntegerConfigurationLookupStrategy extends AbstractMetadataDrivenCo
final List<IdPAttributeValue> values = tag.getValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getId());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getId());
return null;
}
- log.debug("Converting tag '{}' to Integer property", tag.getId());
+ LOG.debug("Converting tag '{}' to Integer property", tag.getId());
final IdPAttributeValue value = values.get(0);
- if (value instanceof StringAttributeValue) {
- return Integer.decode(((StringAttributeValue) value).getValue());
+ if (value instanceof StringAttributeValue strval) {
+ return Integer.decode(strval.getValue());
}
- log.error("Tag '{}' contained non-string value, returning null");
+ LOG.error("Tag '{}' contained non-string value, returning null");
return null;
}
@@ -73,11 +73,11 @@ public class IntegerConfigurationLookupStrategy extends AbstractMetadataDrivenCo
final List<XMLObject> values = tag.getAttributeValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getName());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getName());
return null;
}
- log.debug("Converting tag '{}' to Integer property", tag.getName());
+ LOG.debug("Converting tag '{}' to Integer property", tag.getName());
final XMLObject value = values.get(0);
assert value != null;
@@ -93,23 +93,22 @@ public class IntegerConfigurationLookupStrategy extends AbstractMetadataDrivenCo
* @return the converted value, or null
*/
@Nullable private Integer xmlObjectToInteger(@Nonnull final XMLObject object) {
- if (object instanceof XSString) {
- final String value = ((XSString) object).getValue();
+ if (object instanceof XSString val) {
+ final String value = val.getValue();
return value != null ? Integer.decode(value) : null;
- } else if (object instanceof XSBoolean) {
- final XSBooleanValue value = ((XSBoolean) object).getValue();
+ } else if (object instanceof XSBoolean val) {
+ final XSBooleanValue value = val.getValue();
return value != null ? (value.getValue() ? 1 : 0) : null;
- } else if (object instanceof XSInteger) {
- return ((XSInteger) object).getValue();
- } else if (object instanceof XSAny) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- final String value = wc.getTextContent();
+ } else if (object instanceof XSInteger val) {
+ return val.getValue();
+ } else if (object instanceof XSAny val) {
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ final String value = val.getTextContent();
return value != null ? Integer.decode(value) : null;
}
}
- log.error("Unsupported conversion to Integer from XMLObject type ({})", object.getClass().getName());
+ LOG.error("Unsupported conversion to Integer from XMLObject type ({})", object.getClass().getName());
return null;
}
// Checkstyle: CyclomaticComplexity ON
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/ListConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/ListConfigurationLookupStrategy.java
index ecccbb594..043603d02 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/ListConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/ListConfigurationLookupStrategy.java
@@ -44,13 +44,13 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class ListConfigurationLookupStrategy<T> extends AbstractCollectionConfigurationLookupStrategy<T,List<T>> {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(ListConfigurationLookupStrategy.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(ListConfigurationLookupStrategy.class);
/** {@inheritDoc} */
@Override
@Nullable protected List<T> doTranslate(@Nonnull final IdPAttribute tag) {
- log.debug("Converting tag '{}' to List<{}> property", tag.getId(), getPropertyType().getSimpleName());
+ LOG.debug("Converting tag '{}' to List<{}> property", tag.getId(), getPropertyType().getSimpleName());
final List<IdPAttributeValue> values = tag.getValues();
final List<T> result = new ArrayList<>(values.size());
@@ -59,7 +59,7 @@ public class ListConfigurationLookupStrategy<T> extends AbstractCollectionConfig
try {
result.add(createInstanceFromString(sval.getValue()));
} catch (final Exception e) {
- log.error("Error converting tag value into {}", getPropertyType().getSimpleName(), e);
+ LOG.error("Error converting tag value into {}", getPropertyType().getSimpleName(), e);
}
} else if (value instanceof XMLObjectAttributeValue xmlValue) {
if (getPropertyType().isInstance(xmlValue.getValue())) {
@@ -74,7 +74,7 @@ public class ListConfigurationLookupStrategy<T> extends AbstractCollectionConfig
@Override
@Nullable protected List<T> doTranslate(@Nonnull final Attribute tag) {
- log.debug("Converting tag '{}' to List<{}> property", tag.getName(), getPropertyType().getSimpleName());
+ LOG.debug("Converting tag '{}' to List<{}> property", tag.getName(), getPropertyType().getSimpleName());
final List<XMLObject> values = tag.getAttributeValues();
final List<T> result = new ArrayList<>(values.size());
@@ -86,7 +86,7 @@ public class ListConfigurationLookupStrategy<T> extends AbstractCollectionConfig
try {
result.add(createInstanceFromString(converted));
} catch (final Exception e) {
- log.error("Error converting tag value into {}", getPropertyType().getSimpleName(), e);
+ LOG.error("Error converting tag value into {}", getPropertyType().getSimpleName(), e);
}
} else if (getPropertyType().isInstance(value)) {
result.add(getPropertyType().cast(value));
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/LongConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/LongConfigurationLookupStrategy.java
index b8613dc71..e0d3d2500 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/LongConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/LongConfigurationLookupStrategy.java
@@ -47,7 +47,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class LongConfigurationLookupStrategy extends AbstractMetadataDrivenConfigurationLookupStrategy<Long> {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(LongConfigurationLookupStrategy.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(LongConfigurationLookupStrategy.class);
/** {@inheritDoc} */
@Override
@@ -55,17 +55,17 @@ public class LongConfigurationLookupStrategy extends AbstractMetadataDrivenConfi
final List<IdPAttributeValue> values = tag.getValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getId());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getId());
return null;
}
- log.debug("Converting tag '{}' to Long property", tag.getId());
+ LOG.debug("Converting tag '{}' to Long property", tag.getId());
final IdPAttributeValue value = values.get(0);
- if (value instanceof StringAttributeValue) {
- return Long.decode(((StringAttributeValue) value).getValue());
+ if (value instanceof StringAttributeValue strval) {
+ return Long.decode(strval.getValue());
}
- log.error("Tag '{}' contained non-string value, returning null");
+ LOG.error("Tag '{}' contained non-string value, returning null");
return null;
}
@@ -75,11 +75,11 @@ public class LongConfigurationLookupStrategy extends AbstractMetadataDrivenConfi
final List<XMLObject> values = tag.getAttributeValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getName());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getName());
return null;
}
- log.debug("Converting tag '{}' to Long property", tag.getName());
+ LOG.debug("Converting tag '{}' to Long property", tag.getName());
final XMLObject value = values.get(0);
assert value != null;
return xmlObjectToLong(value);
@@ -94,27 +94,26 @@ public class LongConfigurationLookupStrategy extends AbstractMetadataDrivenConfi
* @return the converted value, or null
*/
@Nullable private Long xmlObjectToLong(@Nonnull final XMLObject object) {
- if (object instanceof XSString) {
- final String value = ((XSString) object).getValue();
+ if (object instanceof XSString val) {
+ final String value = val.getValue();
return value != null ? Long.decode(value) : null;
- } else if (object instanceof XSBoolean) {
- final XSBooleanValue value = ((XSBoolean) object).getValue();
+ } else if (object instanceof XSBoolean val) {
+ final XSBooleanValue value = val.getValue();
return value != null ? (value.getValue() ? 1L : 0L) : null;
- } else if (object instanceof XSInteger) {
- final Integer value = ((XSInteger) object).getValue();
+ } else if (object instanceof XSInteger val) {
+ final Integer value = val.getValue();
return value != null ? value.longValue() : null;
- } else if (object instanceof XSDateTime) {
- final Instant dt = ((XSDateTime) object).getValue();
+ } else if (object instanceof XSDateTime val) {
+ final Instant dt = val.getValue();
return dt != null ? dt.toEpochMilli() : null;
- } else if (object instanceof XSAny) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- final String value = wc.getTextContent();
+ } else if (object instanceof XSAny val) {
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ final String value = val.getTextContent();
return value != null ? Long.decode(value) : null;
}
}
- log.error("Unsupported conversion to Long from XMLObject type ({})", object.getClass().getName());
+ LOG.error("Unsupported conversion to Long from XMLObject type ({})", object.getClass().getName());
return null;
}
// Checkstyle: CyclomaticComplexity ON
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/SetConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/SetConfigurationLookupStrategy.java
index d8e423299..171cfba0b 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/SetConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/SetConfigurationLookupStrategy.java
@@ -45,13 +45,13 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class SetConfigurationLookupStrategy<T> extends AbstractCollectionConfigurationLookupStrategy<T,Set<T>> {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(SetConfigurationLookupStrategy.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(SetConfigurationLookupStrategy.class);
/** {@inheritDoc} */
@Override
@Nullable protected Set<T> doTranslate(@Nonnull final IdPAttribute tag) {
- log.debug("Converting tag '{}' to Set<{}> property", tag.getId(), getPropertyType().getSimpleName());
+ LOG.debug("Converting tag '{}' to Set<{}> property", tag.getId(), getPropertyType().getSimpleName());
final List<IdPAttributeValue> values = tag.getValues();
final Set<T> result = new HashSet<>(values.size());
@@ -60,7 +60,7 @@ public class SetConfigurationLookupStrategy<T> extends AbstractCollectionConfigu
try {
result.add(createInstanceFromString(sval.getValue()));
} catch (final Exception e) {
- log.error("Error converting tag value into {}", getPropertyType().getSimpleName(), e);
+ LOG.error("Error converting tag value into {}", getPropertyType().getSimpleName(), e);
}
} else if (value instanceof XMLObjectAttributeValue xmlValue) {
if (getPropertyType().isInstance(xmlValue.getValue())) {
@@ -75,7 +75,7 @@ public class SetConfigurationLookupStrategy<T> extends AbstractCollectionConfigu
@Override
@Nullable protected Set<T> doTranslate(@Nonnull final Attribute tag) {
- log.debug("Converting tag '{}' to Set<> property", tag.getName());
+ LOG.debug("Converting tag '{}' to Set<> property", tag.getName());
final List<XMLObject> values = tag.getAttributeValues();
final Set<T> result = new HashSet<>(values.size());
@@ -87,7 +87,7 @@ public class SetConfigurationLookupStrategy<T> extends AbstractCollectionConfigu
try {
result.add(createInstanceFromString(converted));
} catch (final Exception e) {
- log.error("Error converting tag value into {}", getPropertyType().getSimpleName(), e);
+ LOG.error("Error converting tag value into {}", getPropertyType().getSimpleName(), e);
}
} else if (getPropertyType().isInstance(value)) {
result.add(getPropertyType().cast(value));
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/StringConfigurationLookupStrategy.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/StringConfigurationLookupStrategy.java
index 688fafe65..b1688668a 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/StringConfigurationLookupStrategy.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/StringConfigurationLookupStrategy.java
@@ -49,7 +49,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class StringConfigurationLookupStrategy extends AbstractMetadataDrivenConfigurationLookupStrategy<String> {
/** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(StringConfigurationLookupStrategy.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(StringConfigurationLookupStrategy.class);
/** {@inheritDoc} */
@Override
@@ -57,17 +57,17 @@ public class StringConfigurationLookupStrategy extends AbstractMetadataDrivenCon
final List<IdPAttributeValue> values = tag.getValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getId());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getId());
return null;
}
- log.debug("Converting tag '{}' to String property", tag.getId());
+ LOG.debug("Converting tag '{}' to String property", tag.getId());
final IdPAttributeValue value = values.get(0);
- if (value instanceof StringAttributeValue) {
- return ((StringAttributeValue) value).getValue();
+ if (value instanceof StringAttributeValue strval) {
+ return strval.getValue();
}
- log.error("Tag '{}' contained non-string value, returning null");
+ LOG.error("Tag '{}' contained non-string value, returning null");
return null;
}
@@ -77,11 +77,11 @@ public class StringConfigurationLookupStrategy extends AbstractMetadataDrivenCon
final List<XMLObject> values = tag.getAttributeValues();
if (values.size() != 1) {
- log.error("Tag '{}' contained multiple values, returning none", tag.getName());
+ LOG.error("Tag '{}' contained multiple values, returning none", tag.getName());
return null;
}
- log.debug("Converting tag '{}' to String property", tag.getName());
+ LOG.debug("Converting tag '{}' to String property", tag.getName());
final XMLObject value = values.get(0);
assert value != null;
return xmlObjectToString(value);
@@ -96,32 +96,30 @@ public class StringConfigurationLookupStrategy extends AbstractMetadataDrivenCon
* @return the converted value, or null
*/
@Nullable private String xmlObjectToString(@Nonnull final XMLObject object) {
- if (object instanceof XSString) {
- return ((XSString) object).getValue();
- } else if (object instanceof XSURI) {
- return ((XSURI) object).getURI();
- } else if (object instanceof XSBoolean) {
- final XSBooleanValue value = ((XSBoolean) object).getValue();
+ if (object instanceof XSString val) {
+ return val.getValue();
+ } else if (object instanceof XSURI val) {
+ return val.getURI();
+ } else if (object instanceof XSBoolean val) {
+ final XSBooleanValue value = val.getValue();
return value != null ? (value.getValue() ? "1" : "0") : null;
- } else if (object instanceof XSInteger) {
- final Integer value = ((XSInteger) object).getValue();
+ } else if (object instanceof XSInteger val) {
+ final Integer value = val.getValue();
return value != null ? value.toString() : null;
- } else if (object instanceof XSDateTime) {
- final Instant dt = ((XSDateTime) object).getValue();
+ } else if (object instanceof XSDateTime val) {
+ final Instant dt = val.getValue();
return dt != null ? Long.toString(dt.toEpochMilli()) : null;
- } else if (object instanceof XSBase64Binary) {
- return ((XSBase64Binary) object).getValue();
- } else if (object instanceof XSAny) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- return wc.getTextContent();
+ } else if (object instanceof XSBase64Binary val) {
+ return val.getValue();
+ } else if (object instanceof XSAny val) {
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ return val.getTextContent();
}
}
- log.error("Unsupported conversion to String from XMLObject type ({})", object.getClass().getName());
+ LOG.error("Unsupported conversion to String from XMLObject type ({})", object.getClass().getName());
return null;
}
// Checkstyle: CyclomaticComplexity ON
-
}
\ No newline at end of file
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/package-info.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/package-info.java
index 978a9c840..aa92cfede 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/package-info.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/config/package-info.java
@@ -15,9 +15,11 @@
* limitations under the License.
*/
-/**
/**
* Configuration support for leveraging {@link net.shibboleth.idp.attribute.IdPAttribute} objects
* decoded from SAML metadata for access to settings.
*/
-package net.shibboleth.idp.attribute.config;
\ No newline at end of file
+ at NonnullElements
+package net.shibboleth.idp.attribute.config;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
index 15e832d53..a74514a51 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
@@ -28,7 +28,6 @@ import javax.annotation.concurrent.NotThreadSafe;
import org.opensaml.messaging.context.BaseContext;
import net.shibboleth.idp.attribute.IdPAttribute;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
@@ -41,10 +40,10 @@ import net.shibboleth.shared.collection.CollectionSupport;
public final class AttributeContext extends BaseContext {
/** The attributes tracked by this context. */
- @Nonnull @NonnullElements private Map<String,IdPAttribute> attributes;
+ @Nonnull private Map<String,IdPAttribute> attributes;
/** The attributes tracked by this context prior to filtering. */
- @Nonnull @NonnullElements private Map<String,IdPAttribute> unfilteredAttributes;
+ @Nonnull private Map<String,IdPAttribute> unfilteredAttributes;
/** Whether attribute release consent was obtained from the subject. */
private boolean consented;
@@ -60,7 +59,7 @@ public final class AttributeContext extends BaseContext {
*
* @return the collection of attributes indexed by attribute ID
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive public Map<String, IdPAttribute> getIdPAttributes() {
+ @Nonnull @Unmodifiable @NotLive public Map<String, IdPAttribute> getIdPAttributes() {
return attributes;
}
@@ -71,8 +70,7 @@ public final class AttributeContext extends BaseContext {
*
* @return this context
*/
- @Nonnull public AttributeContext setIdPAttributes(
- @Nullable @NonnullElements final Collection<IdPAttribute> newAttributes) {
+ @Nonnull public AttributeContext setIdPAttributes(@Nullable final Collection<IdPAttribute> newAttributes) {
if (newAttributes != null) {
attributes = newAttributes.
@@ -93,7 +91,7 @@ public final class AttributeContext extends BaseContext {
*
* @return the collection of attributes indexed by attribute ID
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive public Map<String, IdPAttribute> getUnfilteredIdPAttributes() {
+ @Nonnull @Unmodifiable @NotLive public Map<String, IdPAttribute> getUnfilteredIdPAttributes() {
return unfilteredAttributes;
}
@@ -105,7 +103,7 @@ public final class AttributeContext extends BaseContext {
* @return this context
*/
@Nonnull public AttributeContext setUnfilteredIdPAttributes(
- @Nullable @NonnullElements final Collection<IdPAttribute> newAttributes) {
+ @Nullable final Collection<IdPAttribute> newAttributes) {
if (null != newAttributes) {
unfilteredAttributes = newAttributes.
stream().
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/package-info.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/package-info.java
index 7af005d32..fb173c1b8 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/package-info.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/package-info.java
@@ -18,5 +18,7 @@
/**
* Context to do with Attribute Manipulation.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.context;
-package net.shibboleth.idp.attribute.context;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/package-info.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/package-info.java
index 9d9a6cc23..43d64de44 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/package-info.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/package-info.java
@@ -21,5 +21,7 @@
* their values are encoded in to protocol-specific formats by means of
* {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder}s.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute;
-package net.shibboleth.idp.attribute;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/AttributeTranscoderRegistry.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/AttributeTranscoderRegistry.java
index 330395cc4..4ba2b4685 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/AttributeTranscoderRegistry.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/AttributeTranscoderRegistry.java
@@ -26,7 +26,6 @@ import javax.annotation.Nonnull;
import javax.annotation.concurrent.ThreadSafe;
import net.shibboleth.idp.attribute.IdPAttribute;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -72,8 +71,7 @@ public interface AttributeTranscoderRegistry extends IdentifiedComponent {
*
* @return map of locale-based names
*/
- @Nonnull @NonnullElements @NotLive @Unmodifiable public Map<Locale,String> getDisplayNames(
- @Nonnull final IdPAttribute attribute);
+ @Nonnull @NotLive @Unmodifiable public Map<Locale,String> getDisplayNames(@Nonnull final IdPAttribute attribute);
/**
* Get the localized descriptions for an {@link IdPAttribute}.
@@ -82,8 +80,7 @@ public interface AttributeTranscoderRegistry extends IdentifiedComponent {
*
* @return map of locale-based descriptions
*/
- @Nonnull @NonnullElements @NotLive @Unmodifiable public Map<Locale,String> getDescriptions(
- @Nonnull final IdPAttribute attribute);
+ @Nonnull @NotLive @Unmodifiable public Map<Locale,String> getDescriptions(@Nonnull final IdPAttribute attribute);
/**
* Obtains a set of instructions for encoding an input {@link IdPAttribute} into a target type.
@@ -97,7 +94,7 @@ public interface AttributeTranscoderRegistry extends IdentifiedComponent {
*
* @return a collection of {@link TranscodingRule} objects, possibly empty
*/
- @Nonnull @NonnullElements @Unmodifiable
+ @Nonnull @Unmodifiable @NotLive
Collection<TranscodingRule> getTranscodingRules(@Nonnull final IdPAttribute from, @Nonnull final Class<?> to);
/**
@@ -112,8 +109,7 @@ public interface AttributeTranscoderRegistry extends IdentifiedComponent {
*
* @return a collection of {@link TranscodingRule} objects, possibly empty
*/
- @Nonnull @NonnullElements @Unmodifiable <T> Collection<TranscodingRule> getTranscodingRules(
- @Nonnull final T from);
+ @Nonnull @Unmodifiable @NotLive <T> Collection<TranscodingRule> getTranscodingRules(@Nonnull final T from);
/**
* Interface to a naming function that allows an object to be turned into a unique string name.
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscoderSupport.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscoderSupport.java
index 64f93d515..57e2716f3 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscoderSupport.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscoderSupport.java
@@ -28,9 +28,7 @@ import net.shibboleth.shared.logic.ConstraintViolationException;
public final class TranscoderSupport {
/** Constructor. */
- private TranscoderSupport() {
-
- }
+ private TranscoderSupport() {}
/**
* Pull an {@link AttributeTranscoder} object out of the rule provided.
@@ -46,6 +44,7 @@ public final class TranscoderSupport {
throws ConstraintViolationException {
Constraint.isNotNull(rule, "Transcoding rule cannot be null");
+ @SuppressWarnings("unchecked")
final AttributeTranscoder<T> transcoder =
rule.get(AttributeTranscoderRegistry.PROP_TRANSCODER, AttributeTranscoder.class);
return Constraint.isNotNull(transcoder, "AttributeTranscoder not found in properties");
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscodingRule.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscodingRule.java
index c37bd1493..fc5a0940f 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscodingRule.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/TranscodingRule.java
@@ -35,7 +35,6 @@ import com.google.common.collect.ImmutableMap;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.shared.annotation.ParameterName;
import net.shibboleth.shared.annotation.constraint.Live;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -48,13 +47,13 @@ import net.shibboleth.shared.primitive.StringSupport;
public final class TranscodingRule {
/** Underlying map containing the rule. */
- @Nonnull @NonnullElements private final Map<String,Object> rule;
+ @Nonnull private final Map<String,Object> rule;
/** Map of locale-specific display names. */
- @Nonnull @NonnullElements private Map<Locale,String> displayNames;
+ @Nonnull private Map<Locale,String> displayNames;
/** Map of locale-specific descriptions. */
- @Nonnull @NonnullElements private Map<Locale,String> descriptions;
+ @Nonnull private Map<Locale,String> descriptions;
/**
* Constructor.
@@ -71,7 +70,7 @@ public final class TranscodingRule {
* </li>
* </ul>
*/
- public TranscodingRule(@Nonnull @NonnullElements @ParameterName(name="map") final Map<String,Object> map) {
+ public TranscodingRule(@Nonnull @ParameterName(name="map") final Map<String,Object> map) {
rule = new HashMap<>(map);
displayNames = processDisplayNames();
descriptions = processDescriptions();
@@ -92,7 +91,7 @@ public final class TranscodingRule {
* </li>
* </ul>
*/
- public TranscodingRule(@Nonnull @NonnullElements @ParameterName(name="properties") final Properties properties) {
+ public TranscodingRule(@Nonnull @ParameterName(name="properties") final Properties properties) {
rule = new HashMap<>(properties.size());
properties.forEach(
(k,v) -> {
@@ -109,7 +108,7 @@ public final class TranscodingRule {
*
* @return the map representing the rule
*/
- @Nonnull @NonnullElements @Live public Map<String,Object> getMap() {
+ @Nonnull @Live public Map<String,Object> getMap() {
return rule;
}
@@ -158,7 +157,7 @@ public final class TranscodingRule {
*
* @return map of locale-based names
*/
- @Nonnull @NonnullElements @NotLive @Unmodifiable public Map<Locale,String> getDisplayNames() {
+ @Nonnull @NotLive @Unmodifiable public Map<Locale,String> getDisplayNames() {
return displayNames;
}
@@ -167,7 +166,7 @@ public final class TranscodingRule {
*
* @return map of locale-based descriptions
*/
- @Nonnull @NonnullElements @NotLive @Unmodifiable public Map<Locale,String> getDescriptions() {
+ @Nonnull @NotLive @Unmodifiable public Map<Locale,String> getDescriptions() {
return descriptions;
}
@@ -177,7 +176,7 @@ public final class TranscodingRule {
*
* @return the map of display names
*/
- @Nonnull @NonnullElements private Map<Locale,String> processDisplayNames() {
+ @Nonnull @NotLive @Unmodifiable private Map<Locale,String> processDisplayNames() {
final ImmutableMap.Builder<Locale,String> builder = ImmutableMap.builder();
final HashSet<Locale> inserted = new HashSet<>();
@@ -210,7 +209,7 @@ public final class TranscodingRule {
*
* @return the map of descriptions
*/
- @Nonnull @NonnullElements private Map<Locale,String> processDescriptions() {
+ @Nonnull @NotLive @Unmodifiable private Map<Locale,String> processDescriptions() {
final ImmutableMap.Builder<Locale,String> builder = ImmutableMap.builder();
final HashSet<Locale> inserted = new HashSet<>();
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/package-info.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/package-info.java
index ca23131bd..2f72b1ad4 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/package-info.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/transcoding/package-info.java
@@ -18,5 +18,7 @@
/**
* APIs for transcoding of attributes.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.transcoding;
-package net.shibboleth.idp.attribute.transcoding;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilter.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilter.java
index e82d102c4..f82ffa3d8 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilter.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilter.java
@@ -23,7 +23,7 @@ import javax.annotation.Nonnull;
import javax.annotation.concurrent.ThreadSafe;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.component.IdentifiedComponent;
@@ -36,7 +36,7 @@ public interface AttributeFilter extends IdentifiedComponent {
*
* @return immutable collection of filter policies
*/
- @Nonnull @NonnullElements @Unmodifiable List<AttributeFilterPolicy> getFilterPolicies();
+ @Nonnull @Unmodifiable @NotLive List<AttributeFilterPolicy> getFilterPolicies();
/**
* Filters attributes and values. This filtering process may remove attributes and values but must never add them.
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java
index 546117001..3f5d87f00 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java
@@ -16,6 +16,7 @@
*/
package net.shibboleth.idp.attribute.filter;
+
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -30,8 +31,8 @@ import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.shared.annotation.ParameterName;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent;
@@ -58,7 +59,7 @@ public final class AttributeFilterPolicy extends AbstractIdentifiedInitializable
@Nonnull private final PolicyRequirementRule rule;
/** Filters to be used on attribute values. */
- @Nonnull @NonnullElements private final List<AttributeRule> valuePolicies;
+ @Nonnull private final List<AttributeRule> valuePolicies;
/** Log prefix. */
@Nullable private String logPrefix;
@@ -72,8 +73,7 @@ public final class AttributeFilterPolicy extends AbstractIdentifiedInitializable
*/
public AttributeFilterPolicy(@Nonnull @NotEmpty @ParameterName(name="policyId") final String policyId,
@Nonnull final @ParameterName(name="requirementRule") PolicyRequirementRule requirementRule,
- @Nullable @NonnullElements final @ParameterName(name="attributeRules")
- Collection<AttributeRule> attributeRules) {
+ @Nullable final @ParameterName(name="attributeRules") Collection<AttributeRule> attributeRules) {
setId(policyId);
rule = Constraint.isNotNull(requirementRule, "Attribute filter policy activiation criterion can not be null");
@@ -99,7 +99,7 @@ public final class AttributeFilterPolicy extends AbstractIdentifiedInitializable
*
* @return attribute rules that are in effect if this policy is in effect
*/
- @Nonnull @NonnullElements @Unmodifiable public List<AttributeRule> getAttributeRules() {
+ @Nonnull @Unmodifiable @NotLive public List<AttributeRule> getAttributeRules() {
return valuePolicies;
}
@@ -173,9 +173,7 @@ public final class AttributeFilterPolicy extends AbstractIdentifiedInitializable
* @return Returns the logPrefix.
*/
public String getLogPrefix() {
- String result;
-
- result = logPrefix;
+ String result = logPrefix;
if (null == result) {
result = new StringBuffer("Attribute Filter Policy '").append(getId()).append("' ").toString();
logPrefix = result;
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeRule.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeRule.java
index c03174709..b2e680c84 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeRule.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeRule.java
@@ -38,22 +38,9 @@ import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.primitive.StringSupport;
-// Checkstyle: Javadoc OFF
-// See https://github.com/checkstyle/checkstyle/issues/3351
/**
* Represents a value filtering rule for a particular attribute.
- *
- * <pre>
- * {@code
- * <element name="AttributeRule" type="afp:AttributeRuleType">
- * <annotation>
- * <documentation>A rule that describes how values of an attribute will be filtered.</documentation>
- * </annotation>
- * </element>
- * }
- * </pre>
*/
-//Checkstyle: Javadoc ON
@ThreadSafe
public final class AttributeRule extends AbstractIdentifiableInitializableComponent implements
UnmodifiableComponent {
@@ -64,23 +51,7 @@ public final class AttributeRule extends AbstractIdentifiableInitializableCompon
/** Log prefix. */
@Nullable private String logPrefix;
- // Checkstyle: Javadoc OFF
- // See https://github.com/checkstyle/checkstyle/issues/3351
- /**
- * Unique ID of the attribute this rule applies to.
- *
- * <pre>
- * {@code
- * <attribute name="attributeID" type="string" use="required">
- * <annotation>
- * <documentation>The ID of the attribute to which this rule applies.</documentation>
- * </annotation>
- * </attribute>
- * }
- * </pre>
- */
- // Checkstyle: Javadoc ON
-
+ /** Unique ID of the attribute this rule applies to. */
@NonnullAfterInit private String attributeId;
/**
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/BaseBridgingClass.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/BaseBridgingClass.java
index 1ec196470..2a1be194a 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/BaseBridgingClass.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/BaseBridgingClass.java
@@ -18,6 +18,7 @@
package net.shibboleth.idp.attribute.filter;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import net.shibboleth.shared.annotation.ParameterName;
import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
@@ -38,10 +39,10 @@ public abstract class BaseBridgingClass extends AbstractIdentifiableInitializabl
IdentifiableComponent, DestructableComponent {
/** The object we are bridging to. */
- private final Object bridgedObject;
+ @Nonnull private final Object bridgedObject;
/** Log prefix. */
- private String logPrefix;
+ @Nullable private String logPrefix;
/**
* Constructor.
@@ -51,15 +52,6 @@ public abstract class BaseBridgingClass extends AbstractIdentifiableInitializabl
bridgedObject = Constraint.isNotNull(base, "base rule can not be null");
}
- /** {@inheritDoc} */
- @Override
- protected void doDestroy() {
- if (bridgedObject instanceof DestructableComponent) {
- ((DestructableComponent) bridgedObject).destroy();
- }
- super.doDestroy();
- }
-
/** {@inheritDoc} */
@Override
protected void doInitialize() throws ComponentInitializationException {
@@ -69,6 +61,15 @@ public abstract class BaseBridgingClass extends AbstractIdentifiableInitializabl
super.doInitialize();
logPrefix = null;
}
+
+ /** {@inheritDoc} */
+ @Override
+ protected void doDestroy() {
+ if (bridgedObject instanceof DestructableComponent) {
+ ((DestructableComponent) bridgedObject).destroy();
+ }
+ super.doDestroy();
+ }
/**
* Get the prefix for logging.
@@ -76,15 +77,12 @@ public abstract class BaseBridgingClass extends AbstractIdentifiableInitializabl
* @return Returns the logPrefix.
*/
protected String getLogPrefix() {
- String result;
-
- result = logPrefix;
+ String result = logPrefix;
if (null == result) {
result = new StringBuffer("Bridging for class '").append(getId()).append("' ").toString();
logPrefix = result;
}
return result;
}
-
-
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/Matcher.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/Matcher.java
index a336bd7bb..6793d05be 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/Matcher.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/Matcher.java
@@ -26,7 +26,6 @@ import javax.annotation.concurrent.ThreadSafe;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
@@ -40,9 +39,8 @@ public interface Matcher extends IdentifiedComponent {
@Nonnull static final Matcher MATCHES_ALL = new Matcher() {
/** {@inheritDoc} */
- @Nullable @NonnullElements @Unmodifiable @NotLive
- public Set<IdPAttributeValue> getMatchingValues(@Nonnull final IdPAttribute attribute,
- @Nonnull final AttributeFilterContext filterContext) {
+ @Nullable @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
+ @Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
return CollectionSupport.copyToSet(attribute.getValues());
}
@@ -57,9 +55,8 @@ public interface Matcher extends IdentifiedComponent {
@Nonnull static final Matcher MATCHES_NONE = new Matcher() {
/** {@inheritDoc} */
- @Nullable @NonnullElements @Unmodifiable @NotLive
- public Set<IdPAttributeValue> getMatchingValues(@Nonnull final IdPAttribute attribute,
- @Nonnull final AttributeFilterContext filterContext) {
+ @Nullable @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
+ @Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
return CollectionSupport.emptySet();
}
@@ -74,9 +71,8 @@ public interface Matcher extends IdentifiedComponent {
@Nonnull static final Matcher MATCHER_FAILS = new Matcher() {
/** {@inheritDoc} */
- @Nullable @NonnullElements @Unmodifiable @NotLive
- public Set<IdPAttributeValue> getMatchingValues(@Nonnull final IdPAttribute attribute,
- @Nonnull final AttributeFilterContext filterContext) {
+ @Nullable @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
+ @Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
return null;
}
@@ -94,7 +90,7 @@ public interface Matcher extends IdentifiedComponent {
* @param filterContext the filter context
* @return The result of this rule. Null if we failed.
*/
- @Nullable @NonnullElements @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
+ @Nullable @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
@Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext);
}
\ No newline at end of file
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java
index d7d3b82fe..241fa2c4c 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java
@@ -18,7 +18,6 @@
package net.shibboleth.idp.attribute.filter.context;
import java.util.Collection;
-import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -38,7 +37,6 @@ import org.slf4j.Logger;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.filter.AttributeFilter;
import net.shibboleth.idp.attribute.filter.AttributeFilterException;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
@@ -192,7 +190,7 @@ public final class AttributeFilterContext extends BaseContext {
*
* @return attributes to be filtered
*/
- @Nonnull @NonnullElements @NotLive @Unmodifiable public Map<String,IdPAttribute> getPrefilteredIdPAttributes() {
+ @Nonnull @NotLive @Unmodifiable public Map<String,IdPAttribute> getPrefilteredIdPAttributes() {
return prefilteredAttributes;
}
@@ -204,7 +202,7 @@ public final class AttributeFilterContext extends BaseContext {
* @return this context;
*/
@Nonnull public AttributeFilterContext setPrefilteredIdPAttributes(
- @Nullable @NonnullElements final Collection<IdPAttribute> attributes) {
+ @Nullable final Collection<IdPAttribute> attributes) {
if (attributes != null) {
prefilteredAttributes = attributes.
@@ -224,7 +222,7 @@ public final class AttributeFilterContext extends BaseContext {
*
* @return attributes left after the filtering process has run
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive public Map<String, IdPAttribute> getFilteredIdPAttributes() {
+ @Nonnull @Unmodifiable @NotLive public Map<String, IdPAttribute> getFilteredIdPAttributes() {
return filteredAttributes;
}
@@ -236,7 +234,7 @@ public final class AttributeFilterContext extends BaseContext {
* @return this context
*/
@Nonnull public AttributeFilterContext setFilteredIdPAttributes(
- @Nullable @NonnullElements final Collection<IdPAttribute> attributes) {
+ @Nullable final Collection<IdPAttribute> attributes) {
if (attributes != null) {
filteredAttributes = attributes.
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterWorkContext.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterWorkContext.java
index 341b40be0..c0be53155 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterWorkContext.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterWorkContext.java
@@ -32,7 +32,6 @@ import org.opensaml.messaging.context.BaseContext;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.filter.AttributeFilterException;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -68,8 +67,7 @@ public final class AttributeFilterWorkContext extends BaseContext {
*
* @return collection of attribute values, indexed by ID, that are permitted to be released,
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive
- public Map<String, Set<IdPAttributeValue>> getPermittedIdPAttributeValues() {
+ @Nonnull @Unmodifiable @NotLive public Map<String, Set<IdPAttributeValue>> getPermittedIdPAttributeValues() {
return CollectionSupport.copyToMap(permittedValues);
}
@@ -86,8 +84,7 @@ public final class AttributeFilterWorkContext extends BaseContext {
* not actually values of the attribute.
*/
public void addPermittedIdPAttributeValues(@Nonnull @NotEmpty final String attributeId,
- @Nullable @NonnullElements final Collection<IdPAttributeValue> attributeValues)
- throws AttributeFilterException {
+ @Nullable final Collection<IdPAttributeValue> attributeValues) throws AttributeFilterException {
final BaseContext parent = getParent();
if (!(parent instanceof AttributeFilterContext)) {
@@ -129,8 +126,7 @@ public final class AttributeFilterWorkContext extends BaseContext {
*
* @return collection of attribute values, indexed by ID, that are not permitted to be released
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive
- public Map<String, Set<IdPAttributeValue>> getDeniedAttributeValues() {
+ @Nonnull @Unmodifiable @NotLive public Map<String, Set<IdPAttributeValue>> getDeniedAttributeValues() {
return CollectionSupport.copyToMap(deniedValues);
}
@@ -147,8 +143,7 @@ public final class AttributeFilterWorkContext extends BaseContext {
* values of the attribute
*/
public void addDeniedIdPAttributeValues(@Nonnull @NotEmpty final String attributeId,
- @Nullable @NonnullElements final Collection<IdPAttributeValue> attributeValues)
- throws AttributeFilterException {
+ @Nullable final Collection<IdPAttributeValue> attributeValues) throws AttributeFilterException {
final BaseContext parent = getParent();
if (!(parent instanceof AttributeFilterContext)) {
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/package-info.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/package-info.java
index 490b1d1f6..ac9763318 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/package-info.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/package-info.java
@@ -18,5 +18,7 @@
/**
* The contexts to do with attribute filtering.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.filter.context;
-package net.shibboleth.idp.attribute.filter.context;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/package-info.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/package-info.java
index 2ccd144b1..5c1f95509 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/package-info.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/package-info.java
@@ -23,6 +23,7 @@
* objects which retain or remove values for the attributes in the
* collection.
*/
-
+ at NonnullElements
package net.shibboleth.idp.attribute.filter;
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
index 970462dbe..3557780a6 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
@@ -41,8 +41,8 @@ import net.shibboleth.idp.attribute.filter.AttributeFilterException;
import net.shibboleth.idp.attribute.filter.AttributeFilterPolicy;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterWorkContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
@@ -58,7 +58,7 @@ public class AttributeFilterImpl extends AbstractIdentifiableInitializableCompon
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeFilterImpl.class);
/** Filter policies used by this engine. */
- @Nonnull @NonnullElements private final List<AttributeFilterPolicy> filterPolicies;
+ @Nonnull private final List<AttributeFilterPolicy> filterPolicies;
/** Log prefix. */
@Nullable private String logPrefix;
@@ -73,13 +73,13 @@ public class AttributeFilterImpl extends AbstractIdentifiableInitializableCompon
* @param policies filter policies used by this engine
*/
public AttributeFilterImpl(@Nonnull @NotEmpty final String engineId,
- @Nullable @NonnullElements final Collection<AttributeFilterPolicy> policies) {
+ @Nullable final Collection<AttributeFilterPolicy> policies) {
setId(engineId);
assert policies!=null;
filterPolicies = CollectionSupport.copyToList(policies);
- final Function<AttributeFilterContext,MetricContext> mcls
- = new ChildContextLookup<>(MetricContext.class).compose(new RootContextLookup<>());
- assert mcls!= null;
+ final Function<AttributeFilterContext,MetricContext> mcls =
+ new ChildContextLookup<>(MetricContext.class).compose(new RootContextLookup<>());
+ assert mcls != null;
metricContextLookupStrategy = mcls;
}
@@ -88,7 +88,8 @@ public class AttributeFilterImpl extends AbstractIdentifiableInitializableCompon
*
* @return immutable collection of filter policies
*/
- @Override @Nonnull @NonnullElements @Unmodifiable public List<AttributeFilterPolicy> getFilterPolicies() {
+ @Override
+ @Nonnull @Unmodifiable @NotLive public List<AttributeFilterPolicy> getFilterPolicies() {
return filterPolicies;
}
@@ -100,8 +101,8 @@ public class AttributeFilterImpl extends AbstractIdentifiableInitializableCompon
*
* @throws AttributeFilterException thrown if there is a problem retrieving or applying the attribute filter policy
*/
- @Override public void filterAttributes(@Nonnull final AttributeFilterContext filterContext)
- throws AttributeFilterException {
+ @Override
+ public void filterAttributes(@Nonnull final AttributeFilterContext filterContext) throws AttributeFilterException {
checkComponentActive();
Constraint.isNotNull(filterContext, "Attribute filter context cannot be null");
@@ -127,7 +128,8 @@ public class AttributeFilterImpl extends AbstractIdentifiableInitializableCompon
assert key!=null;
final Collection<IdPAttributeValue> filteredAttributeValues =
getFilteredValues(key, filterContext);
- final Map<String, IdPAttribute> allFilteredAttributes = new HashMap<>(filterContext.getFilteredIdPAttributes());
+ final Map<String, IdPAttribute> allFilteredAttributes =
+ new HashMap<>(filterContext.getFilteredIdPAttributes());
if (null != filteredAttributeValues && !filteredAttributeValues.isEmpty()) {
final IdPAttribute filteredAttribute;
try {
@@ -206,14 +208,13 @@ public class AttributeFilterImpl extends AbstractIdentifiableInitializableCompon
*
* @return Returns the logPrefix.
*/
- protected String getLogPrefix() {
- String result;
-
- result = logPrefix;
+ @Nonnull protected String getLogPrefix() {
+ String result = logPrefix;
if (null == result) {
result = new StringBuffer("Attribute filtering engine '").append(getId()).append("' ").toString();
logPrefix = result;
}
+ assert result != null;
return result;
}
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/package-info.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/package-info.java
index 7b86f3bed..5b32f9dbb 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/package-info.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/package-info.java
@@ -16,5 +16,7 @@
*/
/** Implementations of core attribute filter functionality. */
+ at NonnullElements
+package net.shibboleth.idp.attribute.filter.impl;
-package net.shibboleth.idp.attribute.filter.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractMatcher.java
index a8d34e714..bad141bec 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractMatcher.java
@@ -29,7 +29,6 @@ import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.filter.Matcher;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -59,7 +58,7 @@ public abstract class AbstractMatcher extends AbstractIdentifiableInitializableC
/**
* {@inheritDoc}
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
+ @Nonnull @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
@Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
final Set<IdPAttributeValue> matchedValues = new LinkedHashSet<>();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcher.java
index fdda2daeb..7ee78c1ce 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcher.java
@@ -17,6 +17,7 @@
package net.shibboleth.idp.attribute.filter.matcher.impl;
+import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.Nonnull;
@@ -27,8 +28,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
/**
- * General {@link net.shibboleth.idp.attribute.filter.Matcher} for regexp comparison of strings in Attribute
- * Filters.
+ * General {@link Matcher} for regexp comparison of strings in Attribute Filters.
*/
public abstract class AbstractRegexpStringMatcher extends AbstractMatcher {
@@ -54,6 +54,15 @@ public abstract class AbstractRegexpStringMatcher extends AbstractMatcher {
pattern = Constraint.isNotNull(thePattern, "Pattern supplied to setPattern but not be null");
}
+ /** {@inheritDoc} */
+ @Override
+ protected void doInitialize() throws ComponentInitializationException {
+ super.doInitialize();
+ if (null == pattern) {
+ throw new ComponentInitializationException(getLogPrefix() + " No regular expression provided");
+ }
+ }
+
/**
* Matches the given value against the provided regular expression.
*
@@ -73,14 +82,5 @@ public abstract class AbstractRegexpStringMatcher extends AbstractMatcher {
return false;
}
-
- /** {@inheritDoc} */
- @Override
- protected void doInitialize() throws ComponentInitializationException {
- super.doInitialize();
- if (null == pattern) {
- throw new ComponentInitializationException(getLogPrefix() + " No regular expression provided");
- }
- }
}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcher.java
index 684812342..6586be0aa 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcher.java
@@ -27,7 +27,7 @@ import net.shibboleth.idp.attribute.filter.Matcher;
public abstract class AbstractStringMatcher extends AbstractMatcher implements Matcher {
/** String to match for a positive evaluation. */
- private String matchString;
+ @Nullable private String matchString;
/** Whether the match evaluation is case sensitive. */
private boolean caseSensitive;
@@ -86,4 +86,5 @@ public abstract class AbstractStringMatcher extends AbstractMatcher implements M
}
return value.equalsIgnoreCase(matchString);
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeScopeRegexpMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeScopeRegexpMatcher.java
index 33070f762..52eba3f89 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeScopeRegexpMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeScopeRegexpMatcher.java
@@ -17,6 +17,7 @@
package net.shibboleth.idp.attribute.filter.matcher.impl;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.slf4j.Logger;
@@ -35,9 +36,10 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class AttributeScopeRegexpMatcher extends AbstractRegexpStringMatcher {
/** Logger. */
- private final Logger log = LoggerFactory.getLogger(AttributeScopeRegexpMatcher.class);
+ @Nonnull private final Logger log = LoggerFactory.getLogger(AttributeScopeRegexpMatcher.class);
/** {@inheritDoc} */
+ @Override
public boolean compareAttributeValue(@Nullable final IdPAttributeValue value) {
if (null == value) {
@@ -54,4 +56,4 @@ public class AttributeScopeRegexpMatcher extends AbstractRegexpStringMatcher {
return false;
}
-}
+}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueRegexpMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueRegexpMatcher.java
index 16a9488b2..08f7ce0fc 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueRegexpMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueRegexpMatcher.java
@@ -17,6 +17,7 @@
package net.shibboleth.idp.attribute.filter.matcher.impl;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.slf4j.Logger;
@@ -37,7 +38,7 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class AttributeValueRegexpMatcher extends AbstractRegexpStringMatcher {
/** Logger. */
- private final Logger log = LoggerFactory.getLogger(AttributeValueRegexpMatcher.class);
+ @Nonnull private final Logger log = LoggerFactory.getLogger(AttributeValueRegexpMatcher.class);
/** {@inheritDoc} */
public boolean compareAttributeValue(@Nullable final IdPAttributeValue value) {
@@ -46,8 +47,8 @@ public class AttributeValueRegexpMatcher extends AbstractRegexpStringMatcher {
return false;
} else if (value instanceof EmptyAttributeValue) {
return false;
- } else if (value instanceof StringAttributeValue) {
- return regexpCompare(((StringAttributeValue) value).getValue());
+ } else if (value instanceof StringAttributeValue strval) {
+ return regexpCompare(strval.getValue());
} else {
final String valueAsString = value.getNativeValue().toString();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueStringMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueStringMatcher.java
index 25ff88735..d8e5ebd40 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueStringMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AttributeValueStringMatcher.java
@@ -45,8 +45,8 @@ public class AttributeValueStringMatcher extends AbstractStringMatcher {
if (null == value) {
return false;
- } else if (value instanceof EmptyAttributeValue) {
- switch (((EmptyAttributeValue) value).getValue()) {
+ } else if (value instanceof EmptyAttributeValue empty) {
+ switch (empty.getValue()) {
case NULL_VALUE:
return super.stringCompare(null);
case ZERO_LENGTH_VALUE:
@@ -55,8 +55,8 @@ public class AttributeValueStringMatcher extends AbstractStringMatcher {
throw new IllegalArgumentException("Unknown empty attribute value type " + value.getNativeValue());
}
- } else if (value instanceof StringAttributeValue) {
- return super.stringCompare(((StringAttributeValue) value).getValue());
+ } else if (value instanceof StringAttributeValue strval) {
+ return super.stringCompare(strval.getValue());
} else {
final String valueAsString = value.getNativeValue().toString();
log.warn("{} Object supplied to StringAttributeValue comparison"
@@ -65,4 +65,5 @@ public class AttributeValueStringMatcher extends AbstractStringMatcher {
return super.stringCompare(valueAsString);
}
}
+
}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcher.java
index 073432e9a..3cb2c0ef4 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcher.java
@@ -38,7 +38,6 @@ import net.shibboleth.idp.attribute.filter.FilterScriptContextExtender;
import net.shibboleth.idp.attribute.filter.Matcher;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
@@ -51,8 +50,7 @@ import net.shibboleth.shared.scripting.AbstractScriptEvaluator;
import net.shibboleth.shared.scripting.EvaluableScript;
/**
- * A {@link net.shibboleth.idp.attribute.filter.Matcher} that delegates to a JSR-223 script for its actual processing.
- *
+ * A {@link Matcher} that delegates to a JSR-223 script for its actual processing.
*/
@ThreadSafe
public class ScriptedMatcher extends AbstractIdentifiableInitializableComponent implements Matcher,
@@ -68,7 +66,7 @@ public class ScriptedMatcher extends AbstractIdentifiableInitializableComponent
@NonnullAfterInit private MatcherScriptEvaluator scriptEvaluator;
/** Extenders for script context. */
- @Nonnull @NonnullElements private Collection<FilterScriptContextExtender> contextExtenders;
+ @Nonnull private Collection<FilterScriptContextExtender> contextExtenders;
/** Custom object for script. */
@Nullable private Object customObject;
@@ -125,8 +123,7 @@ public class ScriptedMatcher extends AbstractIdentifiableInitializableComponent
*
* @since 5.0.0
*/
- public void setScriptContextExtenders(
- @Nullable @NonnullElements final Collection<FilterScriptContextExtender> extenders) {
+ public void setScriptContextExtenders(@Nullable final Collection<FilterScriptContextExtender> extenders) {
checkSetterPreconditions();
if (extenders != null) {
@@ -173,8 +170,9 @@ public class ScriptedMatcher extends AbstractIdentifiableInitializableComponent
*
* {@inheritDoc}
*/
- @Override @Nullable @NonnullElements @Unmodifiable public Set<IdPAttributeValue> getMatchingValues(
- @Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
+ @Override
+ @Nullable @Unmodifiable public Set<IdPAttributeValue> getMatchingValues(@Nonnull final IdPAttribute attribute,
+ @Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(attribute, "Attribute to be filtered cannot be null");
Constraint.isNotNull(filterContext, "AttributeFilterContext cannot be null");
@@ -237,8 +235,8 @@ public class ScriptedMatcher extends AbstractIdentifiableInitializableComponent
*
* @return script result
*/
- @Nullable @NonnullElements @Unmodifiable @NotLive public Set<IdPAttributeValue> execute(
- @Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
+ @Nullable @Unmodifiable @NotLive public Set<IdPAttributeValue> execute(@Nonnull final IdPAttribute attribute,
+ @Nonnull final AttributeFilterContext filterContext) {
final Object result = evaluate(attribute, filterContext);
if (null == result) {
log.error("{} Matcher script did not return a result", getLogPrefix());
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/package-info.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/package-info.java
index 154e3946f..f68eda3ad 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/package-info.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/package-info.java
@@ -20,6 +20,7 @@
*
* The classes in this package all implement {@link net.shibboleth.idp.attribute.filter.Matcher}
*/
-
+ at NonnullElements
package net.shibboleth.idp.attribute.filter.matcher.impl;
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java
index 3e7d6de65..d3bd0bc31 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java
@@ -69,7 +69,7 @@ public abstract class AbstractComposedMatcher extends AbstractIdentifiableInitia
*
* @return the composed matchers
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive public List<Matcher> getComposedMatchers() {
+ @Nonnull @Unmodifiable @NotLive public List<Matcher> getComposedMatchers() {
assert matchers != null;
return matchers;
}
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java
index 582880153..d633aad90 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java
@@ -32,8 +32,8 @@ import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.filter.Matcher;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
@@ -52,9 +52,9 @@ public class AndMatcher extends AbstractComposedMatcher {
* If any of the matchers fail then failure is returned
* {@link Matcher}. {@inheritDoc}
*/
- @Override @Nullable @NonnullElements @NotLive
- public Set<IdPAttributeValue> getMatchingValues(@Nonnull final IdPAttribute attribute,
- @Nonnull final AttributeFilterContext filterContext) {
+ @Override
+ @Nullable @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
+ @Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(attribute, "Attribute to be filtered can not be null");
Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
@@ -98,4 +98,4 @@ public class AndMatcher extends AbstractComposedMatcher {
return MoreObjects.toStringHelper(this).add("Composed Matchers : ", getComposedMatchers()).toString();
}
-}
+}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcher.java
index cc1e3c59a..fe0531a9e 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcher.java
@@ -31,8 +31,8 @@ import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.filter.Matcher;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
import net.shibboleth.shared.component.ComponentInitializationException;
@@ -76,7 +76,8 @@ public final class NotMatcher extends AbstractIdentifiableInitializableComponent
* A given attribute value is considered to have matched if it is not returned by the composed {@link Matcher}.
* {@inheritDoc}
*/
- @Override @Nullable @NonnullElements @NotLive public Set<IdPAttributeValue> getMatchingValues(
+ @Override
+ @Nullable @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
@Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(attribute, "Attribute to be filtered can not be null");
Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcher.java
index 67f9aaf43..1daeb2821 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcher.java
@@ -29,8 +29,8 @@ import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.filter.Matcher;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
@@ -44,9 +44,9 @@ import net.shibboleth.shared.logic.Constraint;
public class OrMatcher extends AbstractComposedMatcher {
/** {@inheritDoc} */
- @Override @Nullable @NonnullElements @NotLive
- public Set<IdPAttributeValue> getMatchingValues(@Nonnull final IdPAttribute attribute,
- @Nonnull final AttributeFilterContext filterContext) {
+ @Override
+ @Nullable @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
+ @Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(attribute, "Attribute to be filtered can not be null");
Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
@@ -75,4 +75,4 @@ public class OrMatcher extends AbstractComposedMatcher {
}
}
-}
+}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/package-info.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/package-info.java
index a99d9be06..10ca9ce28 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/package-info.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/package-info.java
@@ -21,5 +21,7 @@
* The classes in this package all implement {@link net.shibboleth.idp.attribute.filter.Matcher}
*/
+ at NonnullElements
package net.shibboleth.idp.attribute.filter.matcher.logic.impl;
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AbstractMatchesShibMDScopeMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AbstractMatchesShibMDScopeMatcher.java
index f124f37cb..f26e99c83 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AbstractMatchesShibMDScopeMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AbstractMatchesShibMDScopeMatcher.java
@@ -34,7 +34,6 @@ import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.filter.Matcher;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.idp.saml.metadata.ScopesContainer;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -67,7 +66,7 @@ public abstract class AbstractMatchesShibMDScopeMatcher
* {@inheritDoc}
*/
// CheckStyle: CyclomaticComplexity OFF
- @Nonnull @NonnullElements @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
+ @Nonnull @Unmodifiable @NotLive public Set<IdPAttributeValue> getMatchingValues(
@Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
final SAMLMetadataContext issuerContext = filterContext.getIssuerMetadataContext();
@@ -106,6 +105,7 @@ public abstract class AbstractMatchesShibMDScopeMatcher
}
for (final IdPAttributeValue value : attribute.getValues()) {
+ assert value != null;
final String compareString = getCompareString(value);
if (compareString == null) {
@@ -128,14 +128,14 @@ public abstract class AbstractMatchesShibMDScopeMatcher
* @param value the vaue we are interested.
* @return the string, or null if empty of not relevant.
*/
- @Nullable @NotEmpty protected abstract String getCompareString(IdPAttributeValue value);
+ @Nullable @NotEmpty protected abstract String getCompareString(@Nonnull final IdPAttributeValue value);
/**
* Return a string which is to be prepended to all log messages.
*
* @return "Attribute Filter '<filterID>' :"
*/
- protected String getLogPrefix() {
+ @Nonnull protected String getLogPrefix() {
// local cache of cached entry to allow unsynchronised clearing.
String prefix = logPrefix;
if (null == prefix) {
@@ -145,6 +145,7 @@ public abstract class AbstractMatchesShibMDScopeMatcher
logPrefix = prefix;
}
}
+ assert prefix != null;
return prefix;
}
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
index 8cdf93694..2be5310e5 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
@@ -52,8 +52,8 @@ import net.shibboleth.idp.attribute.IdPRequestedAttribute;
import net.shibboleth.idp.attribute.StringAttributeValue;
import net.shibboleth.idp.attribute.filter.Matcher;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
@@ -61,7 +61,6 @@ import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.primitive.StringSupport;
import net.shibboleth.shared.xml.DOMTypeSupport;
-
/**
* Matcher that checks whether an attribute is enumerated in an SP's metadata as a required or optional attribute. Also
* supports simple value filtering.
@@ -177,7 +176,8 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
// Checkstyle: CyclomaticComplexity|ReturnCount|MethodLength OFF
/** {@inheritDoc} */
- @Override @Nonnull public Set<IdPAttributeValue> getMatchingValues(@Nonnull final IdPAttribute attribute,
+ @Override
+ @Nonnull public Set<IdPAttributeValue> getMatchingValues(@Nonnull final IdPAttribute attribute,
@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
@@ -291,7 +291,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
*
* @return the extracted map of requested attributes or null
*/
- @Nullable @NonnullElements private Multimap<String,IdPAttribute> getMappedRequestedAttributes(
+ @Nullable private Multimap<String,IdPAttribute> getMappedRequestedAttributes(
@Nonnull final AttributeConsumingService service) {
final List<AttributesMapContainer> containerList =
@@ -342,7 +342,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
* @return the result of the filter
*/
@Nonnull private Set<IdPAttributeValue> filterValues(@Nonnull final IdPAttribute attribute,
- @Nonnull @NonnullElements final List<IdPAttributeValue> requestedValues) {
+ @Nonnull final List<IdPAttributeValue> requestedValues) {
if (null == requestedValues || requestedValues.isEmpty()) {
log.debug("{} Attribute {} found in metadata and no values specified", getLogPrefix(), attribute.getId());
@@ -366,10 +366,8 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
*
* @return the result of the filter
*/
- @Nonnull @Unmodifiable @NonnullElements private Set<IdPAttributeValue> filterValues(
- @Nonnull final String attributeToLog,
- @Nonnull final IdPAttribute attribute,
- @Nonnull @NonnullElements final List<XMLObject> requestedValues) {
+ @Nonnull @Unmodifiable @NotLive private Set<IdPAttributeValue> filterValues(@Nonnull final String attributeToLog,
+ @Nonnull final IdPAttribute attribute, @Nonnull final List<XMLObject> requestedValues) {
if (requestedValues.isEmpty()) {
log.debug("{} Attribute {} found in metadata and no values specified", getLogPrefix(), attributeToLog);
@@ -381,6 +379,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
for (final IdPAttributeValue attributeValue : attribute.getValues()) {
if (attributeValue instanceof StringAttributeValue) {
for (final XMLObject xmlObj : requestedValues) {
+ assert xmlObj != null;
if (match(xmlObj, ((StringAttributeValue) attributeValue).getValue())) {
result.add(attributeValue);
}
@@ -403,7 +402,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
* @param attributeValue the candidate value to match against
* @return true iff the two parameters are non-null and match
*/
- private boolean match(final XMLObject xmlObj, final String attributeValue) {
+ private boolean match(@Nonnull final XMLObject xmlObj, @Nonnull final String attributeValue) {
// This is a substitute for a decoder layer that can generate
// internal comparable value objects out of AttributeValue elements.
// Short of that, some kind of pluggable comparison object with
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeScopeMatchesShibMDScope.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeScopeMatchesShibMDScope.java
index 1b6215f45..ac071eb83 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeScopeMatchesShibMDScope.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeScopeMatchesShibMDScope.java
@@ -17,6 +17,7 @@
package net.shibboleth.idp.attribute.filter.matcher.saml.impl;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.slf4j.Logger;
@@ -31,16 +32,16 @@ import net.shibboleth.shared.primitive.StringSupport;
public class AttributeScopeMatchesShibMDScope extends AbstractMatchesShibMDScopeMatcher {
/** Class logger. */
- private static final Logger LOG = LoggerFactory.getLogger(AttributeScopeMatchesShibMDScope.class);
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(AttributeScopeMatchesShibMDScope.class);
/** {@inheritDoc} */
- @Nullable @NotEmpty protected String getCompareString(final IdPAttributeValue value) {
- if (value instanceof ScopedStringAttributeValue) {
- return StringSupport.trimOrNull(((ScopedStringAttributeValue) value).getScope());
+ @Nullable @NotEmpty protected String getCompareString(@Nonnull final IdPAttributeValue value) {
+ if (value instanceof ScopedStringAttributeValue scoped) {
+ return StringSupport.trimOrNull(scoped.getScope());
}
LOG.warn( "{} value of type {} and value {} not suitable for filtering",
getLogPrefix(), value.getClass(), value.getNativeValue());
return null;
}
-}
+}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeValueMatchesShibMDScope.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeValueMatchesShibMDScope.java
index 77d988d23..65b720960 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeValueMatchesShibMDScope.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeValueMatchesShibMDScope.java
@@ -17,6 +17,7 @@
package net.shibboleth.idp.attribute.filter.matcher.saml.impl;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.slf4j.Logger;
@@ -32,11 +33,10 @@ import net.shibboleth.shared.primitive.StringSupport;
public class AttributeValueMatchesShibMDScope extends AbstractMatchesShibMDScopeMatcher {
/** Class logger. */
- private static final Logger LOG = LoggerFactory.getLogger(AttributeValueMatchesShibMDScope.class);
-
+ @Nonnull private static final Logger LOG = LoggerFactory.getLogger(AttributeValueMatchesShibMDScope.class);
/** {@inheritDoc} */
- @Nullable @NotEmpty protected String getCompareString(final IdPAttributeValue value) {
+ @Nullable @NotEmpty protected String getCompareString(@Nonnull final IdPAttributeValue value) {
if (value instanceof ScopedStringAttributeValue) {
LOG.warn("{} lossy test of AttributeValueMatchesShibMDScope against scoped Attribute value {}",
getLogPrefix(), value.getNativeValue());
@@ -49,4 +49,5 @@ public class AttributeValueMatchesShibMDScope extends AbstractMatchesShibMDScope
getLogPrefix(), value.getClass(), value.getNativeValue());
return null;
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/package-info.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/package-info.java
index 182cc2f47..9613e6aa7 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/package-info.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/package-info.java
@@ -18,6 +18,7 @@
/**
* This is where the attribute matchers that understand SAML live.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.filter.matcher.saml.impl;
-
-package net.shibboleth.idp.attribute.filter.matcher.saml.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java
index 43139cf93..345ac794f 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java
@@ -34,7 +34,6 @@ public class AttributeIssuerPolicyRule extends AbstractStringPolicyRule {
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeIssuerPolicyRule.class);
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java
index 5f3770ba3..d5fccbbb6 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java
@@ -34,7 +34,6 @@ public class AttributeIssuerRegexpPolicyRule extends AbstractRegexpPolicyRule {
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeIssuerRegexpPolicyRule.class);
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java
index f13641e41..9e6b4ca08 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java
@@ -34,7 +34,6 @@ public class AttributeRequesterPolicyRule extends AbstractStringPolicyRule {
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeRequesterPolicyRule.class);
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java
index cafee4d95..2c5587086 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java
@@ -34,7 +34,6 @@ public class AttributeRequesterRegexpPolicyRule extends AbstractRegexpPolicyRule
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeRequesterRegexpPolicyRule.class);
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRule.java
index e39894a12..b869b6c1b 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRule.java
@@ -71,7 +71,6 @@ public class NumOfAttributeValuesPolicyRule extends AbstractPolicyRule {
}
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PredicatePolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PredicatePolicyRule.java
index 1ac4c7653..e6c127d59 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PredicatePolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PredicatePolicyRule.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
import java.util.function.Predicate;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
@@ -55,15 +56,15 @@ public class PredicatePolicyRule extends AbstractPolicyRule {
*
* @param predicate what to set.
*/
- public void setRulePredicate(final Predicate<ProfileRequestContext> predicate) {
+ public void setRulePredicate(@Nullable final Predicate<ProfileRequestContext> predicate) {
rulePredicate = predicate;
}
/** {@inheritDoc} */
@Override protected void doInitialize() throws ComponentInitializationException {
super.doInitialize();
+
if (null == getRulePredicate()) {
- log.error("{} Provided Rule Predicate was null", getLogPrefix());
throw new ComponentInitializationException("Provided Rule Predicate was null");
}
}
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java
index c863ca26b..baedd49be 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java
@@ -34,7 +34,6 @@ public class PrincipalNamePolicyRule extends AbstractStringPolicyRule {
@Nonnull private final Logger log = LoggerFactory.getLogger(PrincipalNamePolicyRule.class);
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java
index 9b3f365ef..f6320e4e8 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java
@@ -34,7 +34,6 @@ public class PrincipalNameRegexpPolicyRule extends AbstractRegexpPolicyRule {
@Nonnull private final Logger log = LoggerFactory.getLogger(PrincipalNameRegexpPolicyRule.class);
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProfilePolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProfilePolicyRule.java
index 6ea8851f5..5a85d6e7b 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProfilePolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProfilePolicyRule.java
@@ -37,7 +37,6 @@ public class ProfilePolicyRule extends AbstractStringPolicyRule {
@Nonnull private final Logger log = LoggerFactory.getLogger(ProfilePolicyRule.class);
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
final ProfileRequestContext pc = filterContext.getProfileRequestContextLookupStrategy().apply(filterContext);
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java
index de23a26b4..edc592407 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java
@@ -32,7 +32,6 @@ import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyR
public class ProxiedRequesterPolicyRule extends AbstractStringPolicyRule {
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRule.java
index b34e5d34d..0674440b6 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRule.java
@@ -32,7 +32,6 @@ import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyR
public class ProxiedRequesterRegexpPolicyRule extends AbstractRegexpPolicyRule {
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/package-info.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/package-info.java
index e962ddcd4..60589c478 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/package-info.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/package-info.java
@@ -22,6 +22,7 @@
* {@link net.shibboleth.idp.attribute.filter.context.AttributeFilterContext} and
* implement {@link net.shibboleth.idp.attribute.filter.Matcher}.
*/
-
+ at NonnullElements
package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractPolicyRule.java
index 3c09d7c25..d84ddc7ea 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractPolicyRule.java
@@ -17,6 +17,9 @@
package net.shibboleth.idp.attribute.filter.policyrule.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
import net.shibboleth.shared.component.ComponentInitializationException;
@@ -28,12 +31,13 @@ public abstract class AbstractPolicyRule extends AbstractIdentifiableInitializab
PolicyRequirementRule {
/** The String used to prefix log message. */
- private String logPrefix;
+ @Nullable private String logPrefix;
/** {@inheritDoc} */
@Override
protected void doInitialize() throws ComponentInitializationException {
super.doInitialize();
+
// Id is now definitive, reset log prefix
logPrefix = null;
@@ -44,7 +48,7 @@ public abstract class AbstractPolicyRule extends AbstractIdentifiableInitializab
*
* @return "Attribute Filter '<filterID>' :"
*/
- protected String getLogPrefix() {
+ @Nonnull protected String getLogPrefix() {
// local cache of cached entry to allow unsynchronised clearing.
String prefix = logPrefix;
if (null == prefix) {
@@ -54,6 +58,9 @@ public abstract class AbstractPolicyRule extends AbstractIdentifiableInitializab
logPrefix = prefix;
}
}
+
+ assert prefix != null;
return prefix;
}
+
}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractRegexpPolicyRule.java
index a243e44cc..2bda4a585 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractRegexpPolicyRule.java
@@ -32,7 +32,7 @@ import net.shibboleth.shared.logic.Constraint;
public abstract class AbstractRegexpPolicyRule extends AbstractPolicyRule {
/** Regular expression to match. */
- private Pattern pattern;
+ @NonnullAfterInit private Pattern pattern;
/**
* Gets the regular expression to match.
@@ -56,6 +56,7 @@ public abstract class AbstractRegexpPolicyRule extends AbstractPolicyRule {
/** {@inheritDoc} */
protected void doInitialize() throws ComponentInitializationException {
super.doInitialize();
+
if (null == pattern) {
throw new ComponentInitializationException(getLogPrefix() + " No regular expression provided");
}
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
index 1f9075123..bb5286f21 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
@@ -28,7 +28,7 @@ import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
public abstract class AbstractStringPolicyRule extends AbstractPolicyRule implements PolicyRequirementRule {
/** String to match for a positive evaluation. */
- private String matchString;
+ @Nullable private String matchString;
/** Whether the match evaluation is case sensitive. */
private boolean caseSensitive = true;
@@ -92,4 +92,5 @@ public abstract class AbstractStringPolicyRule extends AbstractPolicyRule implem
}
return Tristate.FALSE;
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/DirectionPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/DirectionPolicyRule.java
index 7aaa76c1c..037b8cddb 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/DirectionPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/DirectionPolicyRule.java
@@ -61,7 +61,6 @@ public class DirectionPolicyRule extends AbstractPolicyRule {
}
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
return matchDirection.equals(filterContext.getDirection()) ? Tristate.TRUE : Tristate.FALSE;
}
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/ScriptedPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/ScriptedPolicyRule.java
index 26aee03e4..9451094e8 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/ScriptedPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/ScriptedPolicyRule.java
@@ -34,7 +34,6 @@ import net.shibboleth.idp.attribute.filter.FilterScriptContextExtender;
import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
import net.shibboleth.shared.component.ComponentInitializationException;
@@ -63,7 +62,7 @@ public class ScriptedPolicyRule extends AbstractIdentifiableInitializableCompone
@NonnullAfterInit private PolicyRuleScriptEvaluator scriptEvaluator;
/** Extenders for script context. */
- @Nonnull @NonnullElements private Collection<FilterScriptContextExtender> contextExtenders;
+ @Nonnull private Collection<FilterScriptContextExtender> contextExtenders;
/** The custom object we inject into all scripts. */
@Nullable private Object customObject;
@@ -119,8 +118,7 @@ public class ScriptedPolicyRule extends AbstractIdentifiableInitializableCompone
*
* @since 5.0.0
*/
- public void setScriptContextExtenders(
- @Nullable @NonnullElements final Collection<FilterScriptContextExtender> extenders) {
+ public void setScriptContextExtenders(@Nullable final Collection<FilterScriptContextExtender> extenders) {
checkSetterPreconditions();
if (extenders != null) {
contextExtenders = CollectionSupport.copyToList(extenders);
@@ -128,24 +126,8 @@ public class ScriptedPolicyRule extends AbstractIdentifiableInitializableCompone
contextExtenders = CollectionSupport.emptyList();
}
}
-
- /**
- * Calculate the PolicyRule.
- * <p>
- * When the script is evaluated, the following property will be available via the {@link ScriptContext}:
- * </p>
- *
- * <ul>
- * <li><code>filterContext</code> - the current instance of {@link AttributeFilterContext}</li>
- * </ul>
- *
- * <p>
- * The script <strong>MUST</strong> return a {@link java.lang.Boolean}
- * </p>
- *
- * {@inheritDoc}
- */
- @Override
+
+ /** {@inheritDoc} */
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(filterContext, "Attribute filter context cannot be null");
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/package-info.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/package-info.java
index 32cccb0b5..5b8b6626f 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/package-info.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/package-info.java
@@ -18,5 +18,7 @@
/**
* Classes which implement{@link net.shibboleth.idp.attribute.filter.PolicyRequirementRule}.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.filter.policyrule.impl;
-package net.shibboleth.idp.attribute.filter.policyrule.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
index 2eb47c586..becafc3f8 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
@@ -25,7 +25,6 @@ import javax.annotation.Nullable;
import com.google.common.base.MoreObjects;
import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
@@ -46,7 +45,7 @@ public abstract class AbstractComposedPolicyRule extends AbstractIdentifiableIni
* Called "subsidiaries" to allow easier parsing.
* @param theRules the rules to be composed.
*/
- public void setSubsidiaries(@Nullable @NonnullElements final List<PolicyRequirementRule> theRules) {
+ public void setSubsidiaries(@Nullable final List<PolicyRequirementRule> theRules) {
checkSetterPreconditions();
if (theRules != null) {
rules = CollectionSupport.copyToList(theRules);
@@ -60,7 +59,7 @@ public abstract class AbstractComposedPolicyRule extends AbstractIdentifiableIni
*
* @return the composed matchers
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive public List<PolicyRequirementRule> getComposedRules() {
+ @Nonnull @Unmodifiable @NotLive public List<PolicyRequirementRule> getComposedRules() {
return rules;
}
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRule.java
index d4e92bf25..f755c58ec 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRule.java
@@ -52,7 +52,6 @@ public class AndPolicyRule extends AbstractComposedPolicyRule {
}
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/NotPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/NotPolicyRule.java
index 2654da52c..30838926b 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/NotPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/NotPolicyRule.java
@@ -69,7 +69,6 @@ public final class NotPolicyRule extends AbstractIdentifiableInitializableCompon
}
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
checkComponentActive();
@@ -88,4 +87,5 @@ public final class NotPolicyRule extends AbstractIdentifiableInitializableCompon
@Override public String toString() {
return MoreObjects.toStringHelper(this).add("Negated Policy Rule", negatedRule).toString();
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRule.java
index 1de50cad3..379a46fff 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRule.java
@@ -52,7 +52,6 @@ public class OrPolicyRule extends AbstractComposedPolicyRule {
}
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/package-info.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/package-info.java
index 66fc254d5..e17aef922 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/package-info.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/package-info.java
@@ -20,5 +20,7 @@
*
* The classes in this package all implement {@link net.shibboleth.idp.attribute.filter.Matcher}
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.filter.policyrule.logic.impl;
-package net.shibboleth.idp.attribute.filter.policyrule.logic.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributeExactPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributeExactPolicyRule.java
index faefe54ad..591f8abca 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributeExactPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributeExactPolicyRule.java
@@ -22,7 +22,6 @@ import java.util.Set;
import javax.annotation.Nonnull;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
@@ -64,8 +63,7 @@ public abstract class AbstractEntityAttributeExactPolicyRule extends AbstractEnt
/** {@inheritDoc} */
@Override
- protected boolean entityAttributeValueMatches(
- @Nonnull @NotEmpty @NonnullElements final Set<String> entityAttributeValues) {
+ protected boolean entityAttributeValueMatches(@Nonnull @NotEmpty final Set<String> entityAttributeValues) {
return entityAttributeValues.contains(value);
}
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
index 9b27d747f..19c471206 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
@@ -52,8 +52,8 @@ import net.shibboleth.idp.attribute.StringAttributeValue;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
import net.shibboleth.idp.saml.xmlobject.ScopedValue;
+import net.shibboleth.shared.annotation.constraint.Live;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
@@ -161,7 +161,6 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
}
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(filterContext, "Context must be supplied");
@@ -214,8 +213,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
*
* @return true if the value matches, false if not
*/
- protected abstract boolean entityAttributeValueMatches(
- @Nonnull @NotEmpty @NonnullElements final Set<String> entityAttributeValues);
+ protected abstract boolean entityAttributeValueMatches(@Nonnull @NotEmpty final Set<String> entityAttributeValues);
/**
* Gets the entity attribute values from the given metadata.
@@ -229,7 +227,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
*/
// Checkstyle: CyclomaticComplexity OFF
private void getEntityAttributeValues(@Nonnull final XMLObject metadataObject,
- @Nullable @NotEmpty final String name, @Nonnull @NonnullElements final Set<String> valueAccumulator) {
+ @Nullable @NotEmpty final String name, @Nonnull @Live final Set<String> valueAccumulator) {
if (nameFormat == null) {
getMappedEntityAttributeValues(metadataObject, valueAccumulator);
@@ -278,8 +276,8 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
new Object[] {getLogPrefix(), name, getAttributeName(), getNameFormat(),});
valueAccumulator.addAll(
- entityAttribute.getAttributeValues().stream().filter(v -> v != null).map(
- this::getStringValue).collect(Collectors.toList()));
+ entityAttribute.getAttributeValues().stream().map(
+ this::getStringValue).collect(Collectors.toUnmodifiableList()));
}
}
}
@@ -292,7 +290,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
* @param valueAccumulator stores values of the designated attribute
*/
private void getMappedEntityAttributeValues(@Nonnull final XMLObject metadataObject,
- @Nonnull @NonnullElements final Set<String> valueAccumulator) {
+ @Nonnull @Live final Set<String> valueAccumulator) {
final Multimap<String, IdPAttribute> mappedAttributes = getMappedRequestedAttributes(metadataObject);
if (mappedAttributes == null || mappedAttributes.isEmpty()) {
@@ -325,7 +323,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
*
* @return the extracted map of requested attributes or null
*/
- @Nullable @NonnullElements private Multimap<String,IdPAttribute> getMappedRequestedAttributes(
+ @Nullable private Multimap<String,IdPAttribute> getMappedRequestedAttributes(
@Nonnull final XMLObject metadataObject) {
final List<AttributesMapContainer> containerList =
@@ -354,17 +352,17 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
@Nullable private String getStringValue(@Nonnull final XMLObject object) {
String retVal = null;
- if (object instanceof XSString) {
+ if (object instanceof XSString val) {
- retVal = ((XSString) object).getValue();
+ retVal = val.getValue();
- } else if (object instanceof XSURI) {
+ } else if (object instanceof XSURI val) {
- retVal = ((XSURI) object).getURI();
+ retVal = val.getURI();
- } else if (object instanceof XSBoolean) {
+ } else if (object instanceof XSBoolean val) {
- final XSBooleanValue bval = ((XSBoolean) object).getValue();
+ final XSBooleanValue bval = val.getValue();
if (bval != null) {
final Boolean flag = bval.getValue();
if (flag != null) {
@@ -372,35 +370,34 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
}
}
- } else if (object instanceof XSInteger) {
+ } else if (object instanceof XSInteger val) {
- final Integer ival = ((XSInteger) object).getValue();
+ final Integer ival = val.getValue();
if (ival != null) {
retVal = ival.toString();
}
- } else if (object instanceof XSDateTime) {
+ } else if (object instanceof XSDateTime val) {
- final Instant dt = ((XSDateTime) object).getValue();
+ final Instant dt = val.getValue();
if (dt != null) {
retVal = DOMTypeSupport.instantToString(dt);
} else {
retVal = null;
}
- } else if (object instanceof XSBase64Binary) {
+ } else if (object instanceof XSBase64Binary val) {
- retVal = ((XSBase64Binary) object).getValue();
+ retVal = val.getValue();
- } else if (object instanceof ScopedValue) {
+ } else if (object instanceof ScopedValue val) {
- retVal = ((ScopedValue) object).getValue();
+ retVal = val.getValue();
- } else if (object instanceof XSAny) {
+ } else if (object instanceof XSAny val) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- retVal = wc.getTextContent();
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ retVal = val.getTextContent();
} else {
retVal = null;
}
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java
index a950be914..c6887fbae 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java
@@ -116,7 +116,6 @@ public abstract class AbstractEntityGroupPolicyRule extends AbstractPolicyRule {
@Nonnull final AttributeFilterContext filterContext);
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext input) {
checkComponentActive();
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractNameIDFormatExactPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractNameIDFormatExactPolicyRule.java
index 9db2fe6a6..5ecbf4dc3 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractNameIDFormatExactPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractNameIDFormatExactPolicyRule.java
@@ -84,9 +84,7 @@ public abstract class AbstractNameIDFormatExactPolicyRule extends AbstractPolicy
@Nonnull final AttributeFilterContext filterContext);
/** {@inheritDoc} */
- @Override
- @Nonnull
- public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
final SSODescriptor role = getEntitySSODescriptor(filterContext);
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractRegistrationAuthorityPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractRegistrationAuthorityPolicyRule.java
index a13f25764..3cb5ff50b 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractRegistrationAuthorityPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractRegistrationAuthorityPolicyRule.java
@@ -33,7 +33,6 @@ import org.slf4j.Logger;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
@@ -50,7 +49,7 @@ public abstract class AbstractRegistrationAuthorityPolicyRule extends AbstractPo
@Nonnull private final Logger log = LoggerFactory.getLogger(AbstractRegistrationAuthorityPolicyRule.class);
/** The registrars to match against. */
- @Nonnull @NonnullElements private Set<String> registrars;
+ @Nonnull private Set<String> registrars;
/** What to say if no MDRPI is present. */
private boolean matchIfMetadataSilent;
@@ -67,7 +66,7 @@ public abstract class AbstractRegistrationAuthorityPolicyRule extends AbstractPo
*
* @return the issuers
*/
- @Nonnull @NonnullElements @Unmodifiable @NotLive public Set<String> getRegistrars() {
+ @Nonnull @Unmodifiable @NotLive public Set<String> getRegistrars() {
return CollectionSupport.copyToSet(registrars);
}
@@ -76,7 +75,7 @@ public abstract class AbstractRegistrationAuthorityPolicyRule extends AbstractPo
*
* @param theIssuers candidate registrars
*/
- public void setRegistrars(@Nonnull @NonnullElements final Collection<String> theIssuers) {
+ public void setRegistrars(@Nonnull final Collection<String> theIssuers) {
Constraint.isNotNull(theIssuers, "Registrar collection cannot be null");
registrars = new LinkedHashSet<>(theIssuers.size());
@@ -157,7 +156,6 @@ public abstract class AbstractRegistrationAuthorityPolicyRule extends AbstractPo
}
/** {@inheritDoc} */
- @Override
@Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
final RegistrationInfo info = getRegistrationInfo(filterContext);
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/package-info.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/package-info.java
index c8ced5ea8..89777651b 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/package-info.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/package-info.java
@@ -18,5 +18,7 @@
/**
* This is where the attribute policy rules that understand SAML live.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.filter.policyrule.saml.impl;
-package net.shibboleth.idp.attribute.filter.policyrule.saml.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java
index 4de6117b8..cc081641b 100644
--- a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java
+++ b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java
@@ -46,7 +46,6 @@ import net.shibboleth.idp.attribute.PairwiseIdStore;
import net.shibboleth.shared.annotation.constraint.Live;
import net.shibboleth.shared.annotation.constraint.NonNegative;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.annotation.constraint.NotLive;
import net.shibboleth.shared.annotation.constraint.Unmodifiable;
@@ -98,7 +97,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
private int transactionIsolation = Connection.TRANSACTION_SERIALIZABLE;
/** Error messages that signal a transaction should be retried. */
- @Nonnull @NonnullElements private Collection<String> retryableErrors;
+ @Nonnull private Collection<String> retryableErrors;
/** If non-null we doing local locking. */
private ReadWriteLock readWriteLock;
@@ -273,7 +272,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
*
* @return retryable messages
*/
- @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<String> getRetryableErrors() {
+ @Nonnull @NotLive @Unmodifiable public Collection<String> getRetryableErrors() {
return retryableErrors;
}
@@ -283,7 +282,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
*
* @param errors retryable messages
*/
- public void setRetryableErrors(@Nullable @NonnullElements final Collection<String> errors) {
+ public void setRetryableErrors(@Nullable final Collection<String> errors) {
checkSetterPreconditions();
retryableErrors = CollectionSupport.copyToList(StringSupport.normalizeStringCollection(errors));
@@ -910,8 +909,8 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
*
* @throws SQLException thrown if there is a problem reading the information from the database
*/
- @Nonnull @NonnullElements @Live private List<PairwiseId> buildIdentifierEntries(
- @Nonnull final ResultSet resultSet) throws SQLException {
+ @Nonnull @Live private List<PairwiseId> buildIdentifierEntries(@Nonnull final ResultSet resultSet)
+ throws SQLException {
final ArrayList<PairwiseId> entries = new ArrayList<>();
@@ -987,7 +986,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
* @return what the encapsulated {@link Connection} returns
* @throws SQLException if encapsulated {@link Connection} does
*/
- public PreparedStatement prepareStatement(final String sql) throws SQLException {
+ @Nonnull public PreparedStatement prepareStatement(final String sql) throws SQLException {
final PreparedStatement statement = connection.prepareStatement(sql);
statement.setQueryTimeout((int) queryTimeout.toSeconds());
return statement;
@@ -1000,7 +999,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
connection.commit();
}
- @Override
+ /** {@inheritDoc} */
public void close() {
try {
connection.close();
diff --git a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/package-info.java b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/package-info.java
index 550f2e3ea..18ded67a9 100644
--- a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/package-info.java
+++ b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/package-info.java
@@ -18,5 +18,7 @@
/**
* Implementations of general attribute functionality.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.impl;
-package net.shibboleth.idp.attribute.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java
index 105b76562..7b600d908 100644
--- a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java
+++ b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeRegistryServiceStrategy.java
@@ -19,7 +19,6 @@ package net.shibboleth.idp.attribute.transcoding.impl;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Predicate;
@@ -34,7 +33,6 @@ import org.springframework.context.ApplicationContext;
import net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry;
import net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry.NamingFunction;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
import net.shibboleth.shared.component.ComponentInitializationException;
@@ -50,7 +48,7 @@ public class AttributeRegistryServiceStrategy extends AbstractIdentifiableInitia
NonnullFunction<ApplicationContext,AbstractServiceableComponent<AttributeTranscoderRegistry>> {
/** Name of bean to supply naming function registry property. */
- @Nullable @NonnullElements private Collection<NamingFunction<?>> namingRegistry;
+ @Nullable private Collection<NamingFunction<?>> namingRegistry;
/** Optional factory function for building extended activation conditions. */
@Nullable private Function<Map<String,Object>,Predicate<ProfileRequestContext>> extendedConditionFactory;
@@ -64,11 +62,11 @@ public class AttributeRegistryServiceStrategy extends AbstractIdentifiableInitia
* @param namingFunctions collection of functions to install
*/
@Autowired
- public void setNamingRegistry(@Nullable @NonnullElements final Collection<NamingFunction<?>> namingFunctions) {
+ public void setNamingRegistry(@Nullable final Collection<NamingFunction<?>> namingFunctions) {
checkSetterPreconditions();
if (namingFunctions != null) {
- namingRegistry = List.copyOf(namingFunctions);
+ namingRegistry = CollectionSupport.copyToList(namingFunctions);
} else {
namingRegistry = CollectionSupport.emptyList();
}
diff --git a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java
index 18624c7d1..fe6b0970b 100644
--- a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java
+++ b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/AttributeTranscoderRegistryImpl.java
@@ -63,16 +63,16 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeTranscoderRegistryImpl.class);
/** Registry of transcoding instructions for a given "name" and type of object. */
- @Nonnull @NonnullElements private final Map<String,Multimap<Class<?>,TranscodingRule>> transcodingRegistry;
+ @Nonnull private final Map<String,Multimap<Class<?>,TranscodingRule>> transcodingRegistry;
/** Registry of display name mappings associated with internal attribute IDs. */
- @Nonnull @NonnullElements private final Map<String,Map<Locale,String>> displayNameRegistry;
+ @Nonnull private final Map<String,Map<Locale,String>> displayNameRegistry;
/** Registry of description mappings associated with internal attribute IDs. */
- @Nonnull @NonnullElements private final Map<String,Map<Locale,String>> descriptionRegistry;
+ @Nonnull private final Map<String,Map<Locale,String>> descriptionRegistry;
/** Registry of naming functions for supported object types. */
- @Nonnull @NonnullElements private final Map<Class<?>,Function<?,String>> namingFunctionRegistry;
+ @Nonnull private final Map<Class<?>,Function<?,String>> namingFunctionRegistry;
/** Optional factory function for building extended activation conditions. */
@Nullable private Function<Map<String,Object>,Predicate<ProfileRequestContext>> extendedConditionFactory;
@@ -109,15 +109,13 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
*
* @param registry collection of naming functions for indexing
*/
- public void setNamingRegistry(@Nullable @NonnullElements final Collection<NamingFunction<?>> registry) {
+ public void setNamingRegistry(@Nullable final Collection<NamingFunction<?>> registry) {
checkSetterPreconditions();
namingFunctionRegistry.clear();
if (registry != null) {
- registry.forEach(nf -> {
- namingFunctionRegistry.put(nf.getType(), nf.getFunction());
- });
+ registry.forEach(nf -> namingFunctionRegistry.put(nf.getType(), nf.getFunction()));
}
}
@@ -162,7 +160,7 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
final Collection<AttributeTranscoder<?>> transcoders = getAttributeTranscoders(mapping);
for (final AttributeTranscoder<?> transcoder : transcoders) {
- assert transcoder!=null;
+ assert transcoder != null;
addMapping(internalId, transcoder, mapping.getMap());
}
} else {
@@ -187,33 +185,31 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
}
/** {@inheritDoc} */
- @Nonnull @NonnullElements @NotLive @Unmodifiable public Map<Locale,String> getDisplayNames(
- @Nonnull final IdPAttribute attribute) {
+ @Nonnull @NotLive @Unmodifiable public Map<Locale,String> getDisplayNames(@Nonnull final IdPAttribute attribute) {
checkComponentActive();
Constraint.isNotNull(attribute, "IdPAttribute cannot be null");
final Map<Locale, String> map = displayNameRegistry.get(attribute.getId());
- if (map!=null) {
+ if (map != null) {
return map;
}
return CollectionSupport.emptyMap();
}
/** {@inheritDoc} */
- @Nonnull @NonnullElements @NotLive @Unmodifiable public Map<Locale,String> getDescriptions(
- @Nonnull final IdPAttribute attribute) {
+ @Nonnull @NotLive @Unmodifiable public Map<Locale,String> getDescriptions(@Nonnull final IdPAttribute attribute) {
checkComponentActive();
Constraint.isNotNull(attribute, "IdPAttribute cannot be null");
final Map<Locale, String> map = descriptionRegistry.get(attribute.getId());
- if (map!=null) {
+ if (map != null) {
return map;
}
return CollectionSupport.emptyMap();
}
/** {@inheritDoc} */
- @Nonnull @NonnullElements @Unmodifiable public Collection<TranscodingRule> getTranscodingRules(
+ @Nonnull @Unmodifiable @NotLive public Collection<TranscodingRule> getTranscodingRules(
@Nonnull final IdPAttribute from, @Nonnull final Class<?> to) {
checkComponentActive();
Constraint.isNotNull(from, "IdPAttribute cannot be null");
@@ -236,8 +232,7 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
}
/** {@inheritDoc} */
- @Nonnull @NonnullElements @Unmodifiable public <T> Collection<TranscodingRule> getTranscodingRules(
- @Nonnull final T from) {
+ @Nonnull @Unmodifiable @NotLive public <T> Collection<TranscodingRule> getTranscodingRules(@Nonnull final T from) {
checkComponentActive();
Constraint.isNotNull(from, "Input object cannot be null");
@@ -252,7 +247,8 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
final Function<?,String> namingFunction = namingFunctionRegistry.get(effectiveType);
// Don't know if we can work around this cast or not.
- @SuppressWarnings("unchecked") final String id = ((Function<? super T,String>) namingFunction).apply(from);
+ @SuppressWarnings("unchecked")
+ final String id = ((Function<? super T,String>) namingFunction).apply(from);
if (id != null) {
final Multimap<Class<?>,TranscodingRule> propertyCollections = transcodingRegistry.get(id);
@@ -271,8 +267,7 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
*
* @return transcoders to install under a copy of each ruleset's {@link #PROP_TRANSCODER} property
*/
- @Nonnull @NonnullElements private Collection<AttributeTranscoder<?>> getAttributeTranscoders(
- @Nonnull final TranscodingRule rule) {
+ @Nonnull private Collection<AttributeTranscoder<?>> getAttributeTranscoders(@Nonnull final TranscodingRule rule) {
AttributeTranscoder<?> transcoder = rule.get(PROP_TRANSCODER, AttributeTranscoder.class);
if (transcoder != null) {
@@ -290,8 +285,8 @@ public class AttributeTranscoderRegistryImpl extends AbstractIdentifiableInitial
final ApplicationContext appContext = getApplicationContext();
if (appContext != null) {
for (final String id : StringSupport.stringToList(beanNames, " ")) {
- assert id!=null;
try {
+ assert id != null;
transcoder = appContext.getBean(id, AttributeTranscoder.class);
transcoder.initialize();
transcoders.add(transcoder);
diff --git a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/TranscodingRuleLoader.java b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/TranscodingRuleLoader.java
index f0642b8f2..c5a0974d5 100644
--- a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/TranscodingRuleLoader.java
+++ b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/TranscodingRuleLoader.java
@@ -35,7 +35,8 @@ import org.springframework.core.io.FileSystemResource;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.shared.annotation.ParameterName;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.logic.Constraint;
import net.shibboleth.shared.logic.PredicateSupport;
@@ -51,7 +52,7 @@ public class TranscodingRuleLoader {
@Nonnull private Logger log = LoggerFactory.getLogger(TranscodingRuleLoader.class);
/** Rules loaded. */
- private @Nonnull @NonnullElements final Collection<TranscodingRule> rules;
+ @Nonnull private final Collection<TranscodingRule> rules;
/**
* Load rules from all files found below a directory root.
@@ -69,17 +70,17 @@ public class TranscodingRuleLoader {
* @throws IOException if an error occurs
*/
public TranscodingRuleLoader(@Nonnull @ParameterName(name="dir") final Path dir,
- @Nullable @NonnullElements @ParameterName(name="extensions") final Collection<String> extensions)
+ @Nullable @ParameterName(name="extensions") final Collection<String> extensions)
throws IOException {
log.debug("Loading rules from directory ({})", dir);
- rules = new ArrayList<>();
+ final Collection<TranscodingRule> holder = new ArrayList<>();
try (final DirectoryStream<Path> dirstream = Files.newDirectoryStream(dir)) {
for (final Path child : dirstream) {
final File file = child.toFile();
if (file.isDirectory()) {
try {
- rules.addAll(new TranscodingRuleLoader(child, extensions).getRules());
+ holder.addAll(new TranscodingRuleLoader(child, extensions).getRules());
} catch (final IOException e) {
log.error("Failed to load rules from directory ({})", file, e);
}
@@ -91,7 +92,7 @@ public class TranscodingRuleLoader {
if (rule.getMap().isEmpty()) {
log.info("Transcoding file {} contained no rules", child);
} else {
- rules.add(rule);
+ holder.add(rule);
}
} catch (final IOException e) {
log.error("Failed to load rule from file ({})", file, e);
@@ -101,6 +102,8 @@ public class TranscodingRuleLoader {
}
}
}
+
+ rules = CollectionSupport.copyToList(holder);
}
/**
@@ -123,8 +126,7 @@ public class TranscodingRuleLoader {
*
* @param maps a collection of maps to build rules around directly.
*/
- public TranscodingRuleLoader(
- @Nonnull @NonnullElements @ParameterName(name="maps") final Collection<Map<String,Object>> maps) {
+ public TranscodingRuleLoader(@Nonnull @ParameterName(name="maps") final Collection<Map<String,Object>> maps) {
Constraint.isNotNull(maps, "Input collection cannot be null");
rules = maps
@@ -133,7 +135,7 @@ public class TranscodingRuleLoader {
assert m!= null;
return new TranscodingRule(m);
})
- .collect(CollectionSupport.nonnullCollector(Collectors.toList()))
+ .collect(CollectionSupport.nonnullCollector(Collectors.toUnmodifiableList()))
.get();
}
@@ -142,7 +144,7 @@ public class TranscodingRuleLoader {
*
* @return collection of rules
*/
- @Nonnull @NonnullElements public Collection<TranscodingRule> getRules() {
+ @Nonnull @Unmodifiable @NotLive public Collection<TranscodingRule> getRules() {
return rules;
}
diff --git a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/package-info.java b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/package-info.java
index b0a62a206..76a2b39a9 100644
--- a/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/package-info.java
+++ b/shib-attribute-impl/src/main/java/net/shibboleth/idp/attribute/transcoding/impl/package-info.java
@@ -18,5 +18,7 @@
/**
* Implementation classes for attribute transcoding.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.transcoding.impl;
-package net.shibboleth.idp.attribute.transcoding.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/SAMLAttributeDataConnector.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/SAMLAttributeDataConnector.java
index e8af0f030..0ee8cc712 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/SAMLAttributeDataConnector.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/SAMLAttributeDataConnector.java
@@ -41,6 +41,8 @@ import net.shibboleth.idp.attribute.resolver.AbstractDataConnector;
import net.shibboleth.idp.attribute.resolver.ResolutionException;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolverWorkContext;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.primitive.LoggerFactory;
@@ -52,19 +54,19 @@ import net.shibboleth.shared.primitive.LoggerFactory;
public class SAMLAttributeDataConnector extends AbstractDataConnector {
/** Class logger. */
- private final Logger log = LoggerFactory.getLogger(SAMLAttributeDataConnector.class);
+ @Nonnull private final Logger log = LoggerFactory.getLogger(SAMLAttributeDataConnector.class);
/**
* The way to get the list of (SAML) attributes from the resolution context.
*/
- private Function<AttributeResolutionContext, List<Attribute>> attributesStrategy;
+ @NonnullAfterInit private Function<AttributeResolutionContext, List<Attribute>> attributesStrategy;
/**
* Gets the strategy for finding the (SAML) Attributes from the resolution context.
*
* @return the required strategy.
*/
- public Function<AttributeResolutionContext, List<Attribute>> getAttributesStrategy() {
+ @NonnullAfterInit public Function<AttributeResolutionContext, List<Attribute>> getAttributesStrategy() {
return attributesStrategy;
}
@@ -98,7 +100,7 @@ public class SAMLAttributeDataConnector extends AbstractDataConnector {
* @param object the object to encode
* @return an {@link IdPAttributeValue}, or null if no encoding exists.
*/
- protected IdPAttributeValue encodeValue(XMLObject object) {
+ @Nullable protected IdPAttributeValue encodeValue(XMLObject object) {
if (null == object) {
return null;
} else if (object instanceof XSString) {
@@ -114,7 +116,7 @@ public class SAMLAttributeDataConnector extends AbstractDataConnector {
* @param inputString string to encode
* @return encoded attribute value
*/
- private IdPAttributeValue encodeString(@Nonnull final XSString inputString) {
+ @Nonnull private IdPAttributeValue encodeString(@Nonnull final XSString inputString) {
final String value = inputString.getValue();
assert(value != null);
int separator = value.indexOf('@');
@@ -131,10 +133,10 @@ public class SAMLAttributeDataConnector extends AbstractDataConnector {
* @param attributeValues the input values
* @return a list of values, Possibly empty.
*/
- @Nullable protected List<IdPAttributeValue> encodeValues(final List<XMLObject> attributeValues) {
+ @Nonnull @Live protected List<IdPAttributeValue> encodeValues(final List<XMLObject> attributeValues) {
final ArrayList<IdPAttributeValue> result = new ArrayList<>(attributeValues.size());
- for (XMLObject object : attributeValues) {
+ for (final XMLObject object : attributeValues) {
IdPAttributeValue val = encodeValue(object);
result.add(val);
@@ -172,4 +174,4 @@ public class SAMLAttributeDataConnector extends AbstractDataConnector {
return retVal;
}
-}
+}
\ No newline at end of file
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/package-info.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/package-info.java
index 02b321159..6ce692c4a 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/package-info.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/dc/impl/testing/package-info.java
@@ -18,5 +18,7 @@
/**
* Testing utility classes.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.resolver.dc.impl.testing;
-package net.shibboleth.idp.attribute.resolver.dc.impl.testing;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockDataConnector.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockDataConnector.java
index 85ff85bdd..3d1fda86f 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockDataConnector.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockDataConnector.java
@@ -31,7 +31,6 @@ import net.shibboleth.idp.attribute.resolver.ResolverAttributeDefinitionDependen
import net.shibboleth.idp.attribute.resolver.ResolverDataConnectorDependency;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolverWorkContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
@@ -47,7 +46,7 @@ public class MockDataConnector extends AbstractDataConnector {
private int initializeCount;
/** Static collection of values returned by this connector. */
- @Nullable @NonnullElements private final Map<String, IdPAttribute> values;
+ @Nullable private final Map<String, IdPAttribute> values;
/** Exception thrown by resolution. */
@Nullable private ResolutionException resolutionException;
@@ -60,8 +59,7 @@ public class MockDataConnector extends AbstractDataConnector {
*
* @throws ComponentInitializationException ...
*/
- public MockDataConnector(@Nonnull @NotEmpty String id,
- @Nullable @NonnullElements Map<String, IdPAttribute> connectorValues)
+ public MockDataConnector(@Nonnull @NotEmpty String id, @Nullable Map<String, IdPAttribute> connectorValues)
throws ComponentInitializationException {
setId(id);
values = connectorValues;
@@ -76,11 +74,9 @@ public class MockDataConnector extends AbstractDataConnector {
* @param dcDepends The DC dependencies
* @throws ComponentInitializationException if initialization failed
*/
- public MockDataConnector(@Nonnull @NotEmpty String id,
- @Nullable @NonnullElements Map<String, IdPAttribute> connectorValues,
- @Nullable @NonnullElements Set<ResolverAttributeDefinitionDependency> attrDepends,
- @Nullable @NonnullElements Set<ResolverDataConnectorDependency> dcDepends
- ) throws ComponentInitializationException {
+ public MockDataConnector(@Nonnull @NotEmpty String id, @Nullable Map<String, IdPAttribute> connectorValues,
+ @Nullable Set<ResolverAttributeDefinitionDependency> attrDepends,
+ @Nullable Set<ResolverDataConnectorDependency> dcDepends) throws ComponentInitializationException {
setAttributeDependencies(attrDepends == null? CollectionSupport.emptySet() : attrDepends);
setDataConnectorDependencies(dcDepends == null? CollectionSupport.emptySet() : dcDepends);
setId(id);
@@ -103,7 +99,7 @@ public class MockDataConnector extends AbstractDataConnector {
/** {@inheritDoc} */
@Override
- @Nullable protected Map<String, IdPAttribute> doDataConnectorResolve(
+ @Nullable protected Map<String,IdPAttribute> doDataConnectorResolve(
@Nonnull final AttributeResolutionContext resolutionContext,
@Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
if (resolutionException != null) {
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockStaticAttributeDefinition.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockStaticAttributeDefinition.java
index baf6f1bc1..278dec6ad 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockStaticAttributeDefinition.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockStaticAttributeDefinition.java
@@ -62,16 +62,6 @@ public class MockStaticAttributeDefinition extends AbstractAttributeDefinition {
return value;
}
- /** {@inheritDoc} */
- @Override
- @Nullable protected IdPAttribute doAttributeDefinitionResolve(
- @Nonnull final AttributeResolutionContext resolutionContext,
- @Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
- checkComponentActive();
- log.debug("Attribute definition '{}': Resolving static attribute {}", getId(), value);
- return value;
- }
-
/** {@inheritDoc} */
@Override
protected void doInitialize() throws ComponentInitializationException {
@@ -82,5 +72,15 @@ public class MockStaticAttributeDefinition extends AbstractAttributeDefinition {
+ " does not have an attribute set up.");
}
}
+
+ /** {@inheritDoc} */
+ @Override
+ @Nullable protected IdPAttribute doAttributeDefinitionResolve(
+ @Nonnull final AttributeResolutionContext resolutionContext,
+ @Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
+ checkComponentActive();
+ log.debug("Attribute definition '{}': Resolving static attribute {}", getId(), value);
+ return value;
+ }
}
\ No newline at end of file
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockStaticDataConnector.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockStaticDataConnector.java
index 2a672e5d5..61eee308f 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockStaticDataConnector.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/MockStaticDataConnector.java
@@ -32,7 +32,6 @@ import net.shibboleth.idp.attribute.resolver.AbstractDataConnector;
import net.shibboleth.idp.attribute.resolver.ResolutionException;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolverWorkContext;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.primitive.LoggerFactory;
@@ -45,14 +44,14 @@ public class MockStaticDataConnector extends AbstractDataConnector {
@Nonnull private final Logger log = LoggerFactory.getLogger(MockStaticDataConnector.class);
/** Static collection of values returned by this connector. */
- @Nullable @NonnullElements private Map<String, IdPAttribute> attributes;
+ @Nullable private Map<String, IdPAttribute> attributes;
/**
* Get the static values returned by this connector.
*
* @return static values returned by this connector
*/
- @Nullable @NonnullElements public Map<String, IdPAttribute> getAttributes() {
+ @Nullable public Map<String, IdPAttribute> getAttributes() {
return attributes;
}
@@ -61,7 +60,7 @@ public class MockStaticDataConnector extends AbstractDataConnector {
*
* @param newValues static values returned by this connector
*/
- public void setValues(@Nullable @NonnullElements Collection<IdPAttribute> newValues) {
+ public void setValues(@Nullable Collection<IdPAttribute> newValues) {
checkSetterPreconditions();
if (null == newValues) {
@@ -80,16 +79,6 @@ public class MockStaticDataConnector extends AbstractDataConnector {
attributes = Map.copyOf(map);
}
- /** {@inheritDoc} */
- @Override
- @Nullable protected Map<String, IdPAttribute> doDataConnectorResolve(
- @Nonnull final AttributeResolutionContext resolutionContext,
- @Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
- checkComponentActive();
- log.debug("Data connector '{}': Resolving static attribute {}", getId(), attributes);
- return attributes;
- }
-
/** {@inheritDoc} */
@Override
protected void doInitialize() throws ComponentInitializationException {
@@ -100,5 +89,15 @@ public class MockStaticDataConnector extends AbstractDataConnector {
+ " does not have values set up.");
}
}
+
+ /** {@inheritDoc} */
+ @Override
+ @Nullable protected Map<String, IdPAttribute> doDataConnectorResolve(
+ @Nonnull final AttributeResolutionContext resolutionContext,
+ @Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
+ checkComponentActive();
+ log.debug("Data connector '{}': Resolving static attribute {}", getId(), attributes);
+ return attributes;
+ }
}
\ No newline at end of file
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/TestSources.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/TestSources.java
index 575f308bd..b03c9d9fc 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/TestSources.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/TestSources.java
@@ -50,6 +50,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
/** Basic data sources for testing the attribute generators. */
public final class TestSources {
+
/** The name we use in this test for the static connector. */
@Nonnull @NotEmpty public static final String STATIC_CONNECTOR_NAME = "staticCon";
@@ -95,8 +96,8 @@ public final class TestSources {
@Nonnull @NotEmpty public static final String CONNECTOR_ATTRIBUTE_VALUE_REGEXP = "at1-(.+)or";
/** Regexp. for CONNECTOR_ATTRIBUTE_VALUE (for map and regexp testing). */
- @Nonnull public static final Pattern CONNECTOR_ATTRIBUTE_VALUE_REGEXP_PATTERN = Pattern
- .compile(CONNECTOR_ATTRIBUTE_VALUE_REGEXP);
+ @Nonnull public static final Pattern CONNECTOR_ATTRIBUTE_VALUE_REGEXP_PATTERN =
+ Pattern.compile(CONNECTOR_ATTRIBUTE_VALUE_REGEXP);
/** Result from a regexp. */
@Nonnull public static final StringAttributeValue CONNECTOR_ATTRIBUTE_VALUE_REGEXP_RESULT = new StringAttributeValue(
@@ -284,14 +285,7 @@ public final class TestSources {
@NonnullAfterInit public IdPAttribute getValue() {
return value;
}
-
- /** {@inheritDoc} */
- @Override @Nonnull protected IdPAttribute doAttributeDefinitionResolve(
- final AttributeResolutionContext resolutionContext,
- @Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
- return value;
- }
-
+
/** {@inheritDoc} */
@Override protected void doInitialize() throws ComponentInitializationException {
super.doInitialize();
@@ -300,20 +294,29 @@ public final class TestSources {
throw new ComponentInitializationException(getLogPrefix() + " no attribute value set");
}
}
+
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull protected IdPAttribute doAttributeDefinitionResolve(
+ @Nonnull final AttributeResolutionContext resolutionContext,
+ @Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
+ checkComponentActive();
+ return value;
+ }
}
/** Helper class. We cannot use the definition in the resolver-impl package because of dependency circularity. */
private static class StaticDataConnector extends AbstractDataConnector {
/** Static collection of values returned by this connector. */
- private Map<String, IdPAttribute> attributes;
+ @NonnullAfterInit private Map<String, IdPAttribute> attributes;
/**
* Get the static values returned by this connector.
*
* @return static values returned by this connector
*/
- @Nullable @NonnullAfterInit public Map<String, IdPAttribute> getAttributes() {
+ @NonnullAfterInit public Map<String, IdPAttribute> getAttributes() {
return attributes;
}
@@ -323,7 +326,7 @@ public final class TestSources {
* @param newValues static values returned by this connector
*/
public void setValues(@Nullable @NullableElements Collection<IdPAttribute> newValues) {
-
+ checkSetterPreconditions();
if (null == newValues) {
attributes = null;
return;
@@ -340,13 +343,6 @@ public final class TestSources {
attributes = Map.copyOf(map);
}
- /** {@inheritDoc} */
- @Override @Nonnull protected Map<String, IdPAttribute> doDataConnectorResolve(
- @Nonnull final AttributeResolutionContext resolutionContext,
- @Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
- return attributes;
- }
-
/** {@inheritDoc} */
@Override protected void doInitialize() throws ComponentInitializationException {
super.doInitialize();
@@ -356,5 +352,13 @@ public final class TestSources {
}
}
+ /** {@inheritDoc} */
+ @Override @Nonnull protected Map<String, IdPAttribute> doDataConnectorResolve(
+ @Nonnull final AttributeResolutionContext resolutionContext,
+ @Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
+ checkComponentActive();
+ return attributes;
+ }
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/package-info.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/package-info.java
index 21f526e74..315255172 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/package-info.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/resolver/testing/package-info.java
@@ -18,5 +18,7 @@
/**
* Testing utility classes.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.resolver.testing;
-package net.shibboleth.idp.attribute.resolver.testing;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML1AttributeTranscoder.java b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML1AttributeTranscoder.java
index 2d23e7c7d..0d006553d 100644
--- a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML1AttributeTranscoder.java
+++ b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML1AttributeTranscoder.java
@@ -41,7 +41,6 @@ import net.shibboleth.idp.attribute.IdPRequestedAttribute;
import net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.xml.SAMLConstants;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.primitive.LoggerFactory;
@@ -94,7 +93,7 @@ public abstract class AbstractSAML1AttributeTranscoder<EncodedType extends IdPAt
@Override
@Nonnull protected AttributeDesignator buildAttribute(@Nullable final ProfileRequestContext profileRequestContext,
@Nullable final IdPAttribute attribute, @Nonnull final Class<? extends AttributeDesignator> to,
- @Nonnull final TranscodingRule rule, @Nonnull @NonnullElements final List<XMLObject> attributeValues)
+ @Nonnull final TranscodingRule rule, @Nonnull final List<XMLObject> attributeValues)
throws AttributeEncodingException {
if (attribute != null && !attribute.getValues().isEmpty() && attributeValues.isEmpty()) {
@@ -135,8 +134,7 @@ public abstract class AbstractSAML1AttributeTranscoder<EncodedType extends IdPAt
@Override
@Nonnull protected IdPAttribute buildIdPAttribute(
@Nullable final ProfileRequestContext profileRequestContext, @Nonnull final AttributeDesignator attribute,
- @Nonnull final TranscodingRule rule,
- @Nonnull @NonnullElements final List<IdPAttributeValue> attributeValues)
+ @Nonnull final TranscodingRule rule, @Nonnull final List<IdPAttributeValue> attributeValues)
throws AttributeDecodingException {
final String id = rule.get(AttributeTranscoderRegistry.PROP_ID, String.class);
@@ -185,4 +183,4 @@ public abstract class AbstractSAML1AttributeTranscoder<EncodedType extends IdPAt
}
-}
+}
\ No newline at end of file
diff --git a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML2AttributeTranscoder.java b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML2AttributeTranscoder.java
index 9a4033a88..476b348d2 100644
--- a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML2AttributeTranscoder.java
+++ b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML2AttributeTranscoder.java
@@ -39,7 +39,6 @@ import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.IdPRequestedAttribute;
import net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.collection.CollectionSupport;
/**
@@ -87,7 +86,7 @@ public abstract class AbstractSAML2AttributeTranscoder<EncodedType extends IdPAt
@Override
@Nonnull protected Attribute buildAttribute(@Nullable final ProfileRequestContext profileRequestContext,
@Nullable final IdPAttribute attribute, @Nonnull final Class<? extends Attribute> to,
- @Nonnull final TranscodingRule rule, @Nonnull @NonnullElements final List<XMLObject> attributeValues)
+ @Nonnull final TranscodingRule rule, @Nonnull final List<XMLObject> attributeValues)
throws AttributeEncodingException {
if (attribute != null && !attribute.getValues().isEmpty() && attributeValues.isEmpty()) {
@@ -129,8 +128,7 @@ public abstract class AbstractSAML2AttributeTranscoder<EncodedType extends IdPAt
@Override
@Nonnull protected IdPAttribute buildIdPAttribute(
@Nullable final ProfileRequestContext profileRequestContext, @Nonnull final Attribute attribute,
- @Nonnull final TranscodingRule rule,
- @Nonnull @NonnullElements final List<IdPAttributeValue> attributeValues)
+ @Nonnull final TranscodingRule rule, @Nonnull final List<IdPAttributeValue> attributeValues)
throws AttributeDecodingException {
if (!attribute.getAttributeValues().isEmpty() && attributeValues.isEmpty()) {
@@ -189,4 +187,4 @@ public abstract class AbstractSAML2AttributeTranscoder<EncodedType extends IdPAt
}
-}
+}
\ No newline at end of file
diff --git a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAMLAttributeTranscoder.java b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAMLAttributeTranscoder.java
index 93933d7ff..785739c63 100644
--- a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAMLAttributeTranscoder.java
+++ b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAMLAttributeTranscoder.java
@@ -44,7 +44,6 @@ import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.transcoding.AbstractAttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.xmlobject.ScopedValue;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.xml.DOMTypeSupport;
@@ -85,6 +84,7 @@ public abstract class AbstractSAMLAttributeTranscoder<AttributeType extends SAML
continue;
}
+ @SuppressWarnings("unchecked")
final EncodedType attributeValue = (EncodedType) o;
final XMLObject samlAttributeValue =
encodeValue(profileRequestContext, attribute, rule, attributeValue);
@@ -144,52 +144,51 @@ public abstract class AbstractSAMLAttributeTranscoder<AttributeType extends SAML
@Nullable protected String getStringValue(@Nullable final XMLObject object) {
String retVal = null;
- if (object instanceof XSString) {
+ if (object instanceof XSString val) {
- retVal = ((XSString) object).getValue();
+ retVal = val.getValue();
- } else if (object instanceof XSURI) {
+ } else if (object instanceof XSURI val) {
- retVal = ((XSURI) object).getURI();
+ retVal = val.getURI();
- } else if (object instanceof XSBoolean) {
+ } else if (object instanceof XSBoolean val) {
- final XSBooleanValue bval = ((XSBoolean) object).getValue();
+ final XSBooleanValue bval = val.getValue();
if (bval != null) {
final Boolean flag = bval.getValue();
if (flag != null) {
retVal = flag ? "1" : "0"; }
}
- } else if (object instanceof XSInteger) {
+ } else if (object instanceof XSInteger val) {
- final Integer ival = ((XSInteger) object).getValue();
+ final Integer ival = val.getValue();
if (ival != null) {
retVal = ival.toString();
}
- } else if (object instanceof XSDateTime) {
+ } else if (object instanceof XSDateTime val) {
- final Instant dt = ((XSDateTime) object).getValue();
+ final Instant dt = val.getValue();
if (dt != null) {
retVal = DOMTypeSupport.instantToString(dt);
} else {
retVal = null;
}
- } else if (object instanceof XSBase64Binary) {
+ } else if (object instanceof XSBase64Binary val) {
- retVal = ((XSBase64Binary) object).getValue();
+ retVal = val.getValue();
- } else if (object instanceof ScopedValue) {
+ } else if (object instanceof ScopedValue val) {
- retVal = ((ScopedValue) object).getValue();
+ retVal = val.getValue();
- } else if (object instanceof XSAny) {
+ } else if (object instanceof XSAny val) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- retVal = wc.getTextContent();
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ retVal = val.getTextContent();
} else {
retVal = null;
}
@@ -232,7 +231,7 @@ public abstract class AbstractSAMLAttributeTranscoder<AttributeType extends SAML
@Nonnull protected abstract AttributeType buildAttribute(
@Nullable final ProfileRequestContext profileRequestContext, @Nullable final IdPAttribute attribute,
@Nonnull final Class<? extends AttributeType> to, @Nonnull final TranscodingRule rule,
- @Nonnull @NonnullElements final List<XMLObject> attributeValues) throws AttributeEncodingException;
+ @Nonnull final List<XMLObject> attributeValues) throws AttributeEncodingException;
/**
* Encodes an attribute value into a SAML AttributeValue element.
@@ -264,8 +263,7 @@ public abstract class AbstractSAMLAttributeTranscoder<AttributeType extends SAML
*/
@Nonnull protected abstract IdPAttribute buildIdPAttribute(
@Nullable final ProfileRequestContext profileRequestContext, @Nonnull final AttributeType attribute,
- @Nonnull final TranscodingRule rule,
- @Nonnull @NonnullElements final List<IdPAttributeValue> attributeValues)
+ @Nonnull final TranscodingRule rule, @Nonnull final List<IdPAttributeValue> attributeValues)
throws AttributeDecodingException;
/**
diff --git a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/SAMLEncoderSupport.java b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/SAMLEncoderSupport.java
index 283db129c..6e40d87be 100644
--- a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/SAMLEncoderSupport.java
+++ b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/SAMLEncoderSupport.java
@@ -51,9 +51,7 @@ public final class SAMLEncoderSupport {
@Nonnull private static final Logger LOG = LoggerFactory.getLogger(SAMLEncoderSupport.class);
/** Constructor. */
- private SAMLEncoderSupport() {
-
- }
+ private SAMLEncoderSupport() {}
/**
* Encodes a String value into a SAML attribute value element.
diff --git a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/package-info.java b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/package-info.java
index 4c9f4e9b8..6289266be 100644
--- a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/package-info.java
+++ b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/package-info.java
@@ -18,5 +18,7 @@
/**
* Base classes for SAML {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder} classes.
*/
+ at NonnullElements
+package net.shibboleth.idp.saml.attribute.transcoding;
-package net.shibboleth.idp.saml.attribute.transcoding;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/impl/AttributeMappingNodeProcessor.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/impl/AttributeMappingNodeProcessor.java
index 6e922fbe4..5bba8bc61 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/impl/AttributeMappingNodeProcessor.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/impl/AttributeMappingNodeProcessor.java
@@ -51,8 +51,6 @@ import net.shibboleth.idp.attribute.transcoding.TranscoderSupport;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.attribute.transcoding.SAML2AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.impl.SAML2StringAttributeTranscoder;
-import net.shibboleth.shared.annotation.constraint.Live;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
@@ -95,7 +93,8 @@ public class AttributeMappingNodeProcessor implements MetadataNodeProcessor {
}
/** {@inheritDoc} */
- @Override public void process(final XMLObject metadataNode) throws FilterException {
+ @Override
+ public void process(@Nonnull final XMLObject metadataNode) throws FilterException {
if (metadataNode instanceof AttributeConsumingService || metadataNode instanceof EntityDescriptor) {
try (final ServiceableComponent<AttributeTranscoderRegistry> component =
@@ -218,9 +217,8 @@ public class AttributeMappingNodeProcessor implements MetadataNodeProcessor {
*
* @throws AttributeDecodingException if an error occurs or no results were obtained
*/
- private <T> void decodeAttribute(@Nonnull @NonnullElements final Collection<TranscodingRule> rules,
- @Nonnull final T input, @Nonnull @NonnullElements @Live final Multimap<String,IdPAttribute> results)
- throws AttributeDecodingException {
+ private <T> void decodeAttribute(@Nonnull final Collection<TranscodingRule> rules, @Nonnull final T input,
+ @Nonnull final Multimap<String,IdPAttribute> results) throws AttributeDecodingException {
for (final TranscodingRule rule : rules) {
assert rule != null;
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/impl/package-info.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/impl/package-info.java
index 04fb9f7b5..af1ab3b4f 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/impl/package-info.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/impl/package-info.java
@@ -18,5 +18,7 @@
/**
* Miscellaneous implementation classes related to SAML Attributes.
*/
+ at NonnullElements
+package net.shibboleth.idp.saml.attribute.impl;
-package net.shibboleth.idp.saml.attribute.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/SAML1NameIdentifierAttributeDefinition.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/SAML1NameIdentifierAttributeDefinition.java
index daf2c53ce..08bd655c6 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/SAML1NameIdentifierAttributeDefinition.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/SAML1NameIdentifierAttributeDefinition.java
@@ -61,10 +61,10 @@ public class SAML1NameIdentifierAttributeDefinition extends AbstractAttributeDef
@Nonnull private final SAMLObjectBuilder<NameIdentifier> nameIdentifierBuilder;
/** Format of the NameID. */
- private String nameIdFormat;
+ @Nullable private String nameIdFormat;
/** Name qualifier for the NameID. */
- private String nameIdQualifier;
+ @Nullable private String nameIdQualifier;
/**
* Constructor.
@@ -125,7 +125,7 @@ public class SAML1NameIdentifierAttributeDefinition extends AbstractAttributeDef
* @return the constructed NameIdentifier
* @throws ResolutionException if the IdP Name is empty.
*/
- protected NameIdentifier buildNameId(@Nonnull @NotEmpty final String nameIdValue,
+ @Nonnull protected NameIdentifier buildNameId(@Nonnull @NotEmpty final String nameIdValue,
@Nonnull final AttributeResolutionContext resolutionContext) throws ResolutionException {
log.debug("{} building a SAML1 NameIdentifier with value of '{}'", getLogPrefix(), nameIdValue);
@@ -179,19 +179,20 @@ public class SAML1NameIdentifierAttributeDefinition extends AbstractAttributeDef
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttribute doAttributeDefinitionResolve(
+ @Override
+ @Nullable protected IdPAttribute doAttributeDefinitionResolve(
@Nonnull final AttributeResolutionContext resolutionContext,
@Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
checkComponentActive();
final List<? extends IdPAttributeValue> inputValues;
List<IdPAttributeValue> outputValues = null;
- final IdPAttribute result = new IdPAttribute(getId());
+ final IdPAttribute result = new IdPAttribute(ensureId());
inputValues = PluginDependencySupport.getMergedAttributeValues(workContext,
getAttributeDependencies(),
getDataConnectorDependencies(),
- getId());
+ ensureId());
if (null != inputValues && !inputValues.isEmpty()) {
if (1 == inputValues.size()) {
@@ -204,6 +205,7 @@ public class SAML1NameIdentifierAttributeDefinition extends AbstractAttributeDef
// Intermediate to solve typing issues.
final List<IdPAttributeValue> xmlVals = new ArrayList<>(inputValues.size());
for (final IdPAttributeValue theValue : inputValues) {
+ assert theValue != null;
final XMLObjectAttributeValue val = encodeOneValue(theValue, resolutionContext);
if (null != val) {
xmlVals.add(val);
@@ -221,4 +223,4 @@ public class SAML1NameIdentifierAttributeDefinition extends AbstractAttributeDef
return result;
}
-}
+}
\ No newline at end of file
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/SAML2NameIDAttributeDefinition.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/SAML2NameIDAttributeDefinition.java
index f33d2d7e1..43199186b 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/SAML2NameIDAttributeDefinition.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/SAML2NameIDAttributeDefinition.java
@@ -63,13 +63,13 @@ public class SAML2NameIDAttributeDefinition extends AbstractAttributeDefinition
@Nonnull private final SAMLObjectBuilder<NameID> nameIDBuilder;
/** Format of the NameID. */
- private String nameIdFormat;
+ @Nullable private String nameIdFormat;
/** Name qualifier for the NameID. */
- private String nameIdQualifier;
+ @Nullable private String nameIdQualifier;
/** SP name qualifier for the NameID. */
- private String nameIdSPQualifier;
+ @Nullable private String nameIdSPQualifier;
/**
* Constructor.
@@ -148,7 +148,7 @@ public class SAML2NameIDAttributeDefinition extends AbstractAttributeDefinition
* @return the constructed NameID
* @throws ResolutionException if the IdP Name is empty.
*/
- protected NameID buildNameId(@Nonnull @NotEmpty final String nameIdValue,
+ @Nonnull protected NameID buildNameId(@Nonnull @NotEmpty final String nameIdValue,
@Nonnull final AttributeResolutionContext resolutionContext) throws ResolutionException {
log.debug("{} building a SAML2 NameID with value of '{}'", getLogPrefix(), nameIdValue);
@@ -215,19 +215,20 @@ public class SAML2NameIDAttributeDefinition extends AbstractAttributeDefinition
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttribute doAttributeDefinitionResolve(
+ @Override
+ @Nullable protected IdPAttribute doAttributeDefinitionResolve(
@Nonnull final AttributeResolutionContext resolutionContext,
@Nonnull final AttributeResolverWorkContext workContext) throws ResolutionException {
checkComponentActive();
final List<IdPAttributeValue> inputValues;
List<IdPAttributeValue> outputValues = null;
- final IdPAttribute result = new IdPAttribute(getId());
+ final IdPAttribute result = new IdPAttribute(ensureId());
inputValues = PluginDependencySupport.getMergedAttributeValues(workContext,
getAttributeDependencies(),
getDataConnectorDependencies(),
- getId());
+ ensureId());
if (null != inputValues && !inputValues.isEmpty()) {
@@ -240,6 +241,7 @@ public class SAML2NameIDAttributeDefinition extends AbstractAttributeDefinition
// TODO Intermediate to solve typing issues.
final List<IdPAttributeValue> xmlVals = new ArrayList<>(inputValues.size());
for (final IdPAttributeValue theValue : inputValues) {
+ assert theValue != null;
final XMLObjectAttributeValue val = encodeOneValue(theValue, resolutionContext);
if (null != val) {
xmlVals.add(val);
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/package-info.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/package-info.java
index 1ea048a02..7ff7f2c62 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/package-info.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/resolver/impl/package-info.java
@@ -19,5 +19,7 @@
* Implementations of SAML related {@link net.shibboleth.idp.attribute.resolver.AttributeDefinition}
* and {@link net.shibboleth.idp.attribute.resolver.DataConnector}.
*/
+ at NonnullElements
+package net.shibboleth.idp.saml.attribute.resolver.impl;
-package net.shibboleth.idp.saml.attribute.resolver.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoder.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoder.java
index 57c93cc76..a53a21850 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoder.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoder.java
@@ -30,6 +30,7 @@ import net.shibboleth.idp.attribute.AttributeEncodingException;
import net.shibboleth.idp.attribute.ByteAttributeValue;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML1AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.SAMLEncoderSupport;
@@ -39,8 +40,7 @@ import net.shibboleth.shared.codec.EncodingException;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
- * {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder} that supports {@link AttributeDesignator} and
- * {@link ByteAttributeValue} objects.
+ * {@link AttributeTranscoder} that supports {@link AttributeDesignator} and {@link ByteAttributeValue} objects.
*/
public class SAML1ByteAttributeTranscoder extends AbstractSAML1AttributeTranscoder<ByteAttributeValue> {
@@ -48,13 +48,14 @@ public class SAML1ByteAttributeTranscoder extends AbstractSAML1AttributeTranscod
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML1ByteAttributeTranscoder.class);
/** {@inheritDoc} */
- @Override protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute,
- @Nonnull final IdPAttributeValue value) {
+ @Override
+ protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute, @Nonnull final IdPAttributeValue value) {
return value instanceof ByteAttributeValue;
}
/** {@inheritDoc} */
- @Override @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Override
+ @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
@Nonnull final IdPAttribute attribute, @Nonnull final TranscodingRule rule,
@Nonnull final ByteAttributeValue value) throws AttributeEncodingException {
@@ -70,9 +71,10 @@ public class SAML1ByteAttributeTranscoder extends AbstractSAML1AttributeTranscod
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttributeValue decodeValue(
- @Nullable final ProfileRequestContext profileRequestContext, @Nonnull final AttributeDesignator attribute,
- @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
+ @Override
+ @Nullable protected IdPAttributeValue decodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Nonnull final AttributeDesignator attribute, @Nonnull final TranscodingRule rule,
+ @Nullable final XMLObject value) {
final String s = getStringValue(value);
if (null == s) {
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoder.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoder.java
index 92e6b9f8a..8a73c07b3 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoder.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoder.java
@@ -32,6 +32,7 @@ import net.shibboleth.idp.attribute.AttributeEncodingException;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.ScopedStringAttributeValue;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML1AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.SAMLEncoderSupport;
@@ -39,8 +40,7 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
- * {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder} that supports {@link AttributeDesignator} and
- * {@link ScopedStringAttributeValue} objects.
+ * {@link AttributeTranscoder} that supports {@link AttributeDesignator} and {@link ScopedStringAttributeValue} objects.
*/
public class SAML1ScopedStringAttributeTranscoder extends AbstractSAML1AttributeTranscoder<ScopedStringAttributeValue> {
@@ -57,13 +57,14 @@ public class SAML1ScopedStringAttributeTranscoder extends AbstractSAML1Attribute
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML1ScopedStringAttributeTranscoder.class);
/** {@inheritDoc} */
- @Override protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute,
- @Nonnull final IdPAttributeValue value) {
+ @Override
+ protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute, @Nonnull final IdPAttributeValue value) {
return value instanceof ScopedStringAttributeValue;
}
/** {@inheritDoc} */
- @Override @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Override
+ @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
@Nonnull final IdPAttribute attribute, @Nonnull final TranscodingRule rule,
@Nonnull final ScopedStringAttributeValue value) throws AttributeEncodingException {
@@ -89,9 +90,10 @@ public class SAML1ScopedStringAttributeTranscoder extends AbstractSAML1Attribute
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttributeValue decodeValue(
- @Nullable final ProfileRequestContext profileRequestContext, @Nonnull final AttributeDesignator attribute,
- @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
+ @Override
+ @Nullable protected IdPAttributeValue decodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Nonnull final AttributeDesignator attribute, @Nonnull final TranscodingRule rule,
+ @Nullable final XMLObject value) {
if (value == null) {
return null;
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoder.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoder.java
index 23feb785e..50b7e2a8b 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoder.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoder.java
@@ -31,14 +31,14 @@ import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.ScopedStringAttributeValue;
import net.shibboleth.idp.attribute.StringAttributeValue;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML1AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.SAMLEncoderSupport;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
- * {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder} that supports {@link AttributeDesignator} and
- * {@link StringAttributeValue} objects.
+ * {@link AttributeTranscoder} that supports {@link AttributeDesignator} and {@link StringAttributeValue} objects.
*/
public class SAML1StringAttributeTranscoder extends AbstractSAML1AttributeTranscoder<StringAttributeValue> {
@@ -46,13 +46,14 @@ public class SAML1StringAttributeTranscoder extends AbstractSAML1AttributeTransc
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML1StringAttributeTranscoder.class);
/** {@inheritDoc} */
- @Override protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute,
- @Nonnull final IdPAttributeValue value) {
+ @Override
+ protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute, @Nonnull final IdPAttributeValue value) {
return value instanceof StringAttributeValue;
}
/** {@inheritDoc} */
- @Override @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Override
+ @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
@Nonnull final IdPAttribute attribute, @Nonnull final TranscodingRule rule,
@Nonnull final StringAttributeValue value) throws AttributeEncodingException {
@@ -69,9 +70,10 @@ public class SAML1StringAttributeTranscoder extends AbstractSAML1AttributeTransc
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttributeValue decodeValue(
- @Nullable final ProfileRequestContext profileRequestContext, @Nonnull final AttributeDesignator attribute,
- @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
+ @Override
+ @Nullable protected IdPAttributeValue decodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Nonnull final AttributeDesignator attribute, @Nonnull final TranscodingRule rule,
+ @Nullable final XMLObject value) {
final String stringValue = getStringValue(value);
if (null == stringValue) {
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1XMLObjectAttributeTranscoder.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1XMLObjectAttributeTranscoder.java
index 0bafcaacc..6bb124f7d 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1XMLObjectAttributeTranscoder.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1XMLObjectAttributeTranscoder.java
@@ -32,6 +32,7 @@ import net.shibboleth.idp.attribute.AttributeEncodingException;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.XMLObjectAttributeValue;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML1AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.SAMLEncoderSupport;
@@ -39,8 +40,7 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
- * {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder} that supports {@link AttributeDesignator} and
- * {@link XMLObjectAttributeValue} objects.
+ * {@link AttributeTranscoder} that supports {@link AttributeDesignator} and {@link XMLObjectAttributeValue} objects.
*/
public class SAML1XMLObjectAttributeTranscoder extends AbstractSAML1AttributeTranscoder<XMLObjectAttributeValue> {
@@ -51,8 +51,8 @@ public class SAML1XMLObjectAttributeTranscoder extends AbstractSAML1AttributeTra
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML1XMLObjectAttributeTranscoder.class);
/** {@inheritDoc} */
- @Override protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute,
- @Nonnull final IdPAttributeValue value) {
+ @Override
+ protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute, @Nonnull final IdPAttributeValue value) {
return value instanceof XMLObjectAttributeValue;
}
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoder.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoder.java
index 8e41ac2f4..e5c58450b 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoder.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoder.java
@@ -30,6 +30,7 @@ import net.shibboleth.idp.attribute.AttributeEncodingException;
import net.shibboleth.idp.attribute.ByteAttributeValue;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML2AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.SAMLEncoderSupport;
@@ -39,8 +40,7 @@ import net.shibboleth.shared.codec.EncodingException;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
- * {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder} that supports {@link Attribute} and
- * {@link ByteAttributeValue} objects.
+ * {@link AttributeTranscoder} that supports {@link Attribute} and {@link ByteAttributeValue} objects.
*/
public class SAML2ByteAttributeTranscoder extends AbstractSAML2AttributeTranscoder<ByteAttributeValue> {
@@ -48,13 +48,14 @@ public class SAML2ByteAttributeTranscoder extends AbstractSAML2AttributeTranscod
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML2ByteAttributeTranscoder.class);
/** {@inheritDoc} */
- @Override protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute,
- @Nonnull final IdPAttributeValue value) {
+ @Override
+ protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute, @Nonnull final IdPAttributeValue value) {
return value instanceof ByteAttributeValue;
}
/** {@inheritDoc} */
- @Override @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Override
+ @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
@Nonnull final IdPAttribute attribute, @Nonnull final TranscodingRule rule,
@Nonnull final ByteAttributeValue value) throws AttributeEncodingException {
@@ -70,9 +71,9 @@ public class SAML2ByteAttributeTranscoder extends AbstractSAML2AttributeTranscod
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttributeValue decodeValue(
- @Nullable final ProfileRequestContext profileRequestContext, @Nonnull final Attribute attribute,
- @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
+ @Override
+ @Nullable protected IdPAttributeValue decodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Nonnull final Attribute attribute, @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
final String s = getStringValue(value);
if (null == s) {
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoder.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoder.java
index 88f06581b..40cd61ada 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoder.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoder.java
@@ -59,13 +59,14 @@ public class SAML2DateTimeAttributeTranscoder extends AbstractSAML2AttributeTran
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML2DateTimeAttributeTranscoder.class);
/** {@inheritDoc} */
- @Override protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute,
- @Nonnull final IdPAttributeValue value) {
+ @Override
+ protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute, @Nonnull final IdPAttributeValue value) {
return value instanceof DateTimeAttributeValue;
}
/** {@inheritDoc} */
- @Override @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Override
+ @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
@Nonnull final IdPAttribute attribute, @Nonnull final TranscodingRule rule,
@Nonnull final DateTimeAttributeValue value) throws AttributeEncodingException {
@@ -77,9 +78,9 @@ public class SAML2DateTimeAttributeTranscoder extends AbstractSAML2AttributeTran
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttributeValue decodeValue(
- @Nullable final ProfileRequestContext profileRequestContext, @Nonnull final Attribute attribute,
- @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
+ @Override
+ @Nullable protected IdPAttributeValue decodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Nonnull final Attribute attribute, @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
if (value != null) {
final Instant retVal = getDateTimeValue(rule, value);
@@ -102,26 +103,25 @@ public class SAML2DateTimeAttributeTranscoder extends AbstractSAML2AttributeTran
@Nullable protected Instant getDateTimeValue(@Nonnull final TranscodingRule rule, @Nonnull final XMLObject object) {
Instant retVal = null;
- if (object instanceof XSString) {
+ if (object instanceof XSString val) {
- return getDateTimeValue(rule, ((XSString) object).getValue());
+ return getDateTimeValue(rule, val.getValue());
- } else if (object instanceof XSInteger) {
+ } else if (object instanceof XSInteger val) {
- final Integer value = ((XSInteger) object).getValue();
+ final Integer value = val.getValue();
if (value != null) {
return getDateTimeValue(rule, value.longValue());
}
- } else if (object instanceof XSDateTime) {
+ } else if (object instanceof XSDateTime val) {
- retVal = ((XSDateTime) object).getValue();
+ retVal = val.getValue();
- } else if (object instanceof XSAny) {
+ } else if (object instanceof XSAny val) {
- final XSAny wc = (XSAny) object;
- if (wc.getUnknownAttributes().isEmpty() && wc.getUnknownXMLObjects().isEmpty()) {
- return getDateTimeValue(rule, wc.getTextContent());
+ if (val.getUnknownAttributes().isEmpty() && val.getUnknownXMLObjects().isEmpty()) {
+ return getDateTimeValue(rule, val.getTextContent());
}
}
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoder.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoder.java
index 1498cdf41..e6dcbcef0 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoder.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoder.java
@@ -32,6 +32,7 @@ import net.shibboleth.idp.attribute.AttributeEncodingException;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.ScopedStringAttributeValue;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML2AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.SAMLEncoderSupport;
@@ -39,8 +40,7 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
- * {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder} that supports {@link Attribute} and
- * {@link ScopedStringAttributeValue} objects.
+ * {@link AttributeTranscoder} that supports {@link Attribute} and {@link ScopedStringAttributeValue} objects.
*/
public class SAML2ScopedStringAttributeTranscoder extends AbstractSAML2AttributeTranscoder<ScopedStringAttributeValue> {
@@ -57,13 +57,14 @@ public class SAML2ScopedStringAttributeTranscoder extends AbstractSAML2Attribute
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML2ScopedStringAttributeTranscoder.class);
/** {@inheritDoc} */
- @Override protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute,
- @Nonnull final IdPAttributeValue value) {
+ @Override
+ protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute, @Nonnull final IdPAttributeValue value) {
return value instanceof ScopedStringAttributeValue;
}
/** {@inheritDoc} */
- @Override @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Override
+ @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
@Nonnull final IdPAttribute attribute, @Nonnull final TranscodingRule rule,
@Nonnull final ScopedStringAttributeValue value) throws AttributeEncodingException {
@@ -89,9 +90,9 @@ public class SAML2ScopedStringAttributeTranscoder extends AbstractSAML2Attribute
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttributeValue decodeValue(
- @Nullable final ProfileRequestContext profileRequestContext, @Nonnull final Attribute attribute,
- @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
+ @Override
+ @Nullable protected IdPAttributeValue decodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Nonnull final Attribute attribute, @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
if (value == null) {
return null;
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoder.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoder.java
index f2df13a24..d403b2895 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoder.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoder.java
@@ -31,14 +31,14 @@ import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.ScopedStringAttributeValue;
import net.shibboleth.idp.attribute.StringAttributeValue;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML2AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.SAMLEncoderSupport;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
- * {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder} that supports {@link Attribute} and
- * {@link StringAttributeValue} objects.
+ * {@link AttributeTranscoder} that supports {@link Attribute} and {@link StringAttributeValue} objects.
*/
public class SAML2StringAttributeTranscoder extends AbstractSAML2AttributeTranscoder<StringAttributeValue> {
@@ -46,13 +46,14 @@ public class SAML2StringAttributeTranscoder extends AbstractSAML2AttributeTransc
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML2StringAttributeTranscoder.class);
/** {@inheritDoc} */
- @Override protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute,
- @Nonnull final IdPAttributeValue value) {
+ @Override
+ protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute, @Nonnull final IdPAttributeValue value) {
return value instanceof StringAttributeValue;
}
/** {@inheritDoc} */
- @Override @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Override
+ @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
@Nonnull final IdPAttribute attribute, @Nonnull final TranscodingRule rule,
@Nonnull final StringAttributeValue value) throws AttributeEncodingException {
@@ -69,9 +70,9 @@ public class SAML2StringAttributeTranscoder extends AbstractSAML2AttributeTransc
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttributeValue decodeValue(
- @Nullable final ProfileRequestContext profileRequestContext, @Nonnull final Attribute attribute,
- @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
+ @Override
+ @Nullable protected IdPAttributeValue decodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Nonnull final Attribute attribute, @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
final String stringValue = getStringValue(value);
if (null == stringValue) {
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoder.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoder.java
index 50af2f487..fdd2fde2a 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoder.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoder.java
@@ -32,6 +32,7 @@ import net.shibboleth.idp.attribute.AttributeEncodingException;
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.XMLObjectAttributeValue;
+import net.shibboleth.idp.attribute.transcoding.AttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML2AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.SAMLEncoderSupport;
@@ -39,8 +40,7 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.primitive.LoggerFactory;
/**
- * {@link net.shibboleth.idp.attribute.transcoding.AttributeTranscoder} that supports {@link Attribute} and
- * {@link XMLObjectAttributeValue} objects.
+ * {@link AttributeTranscoder} that supports {@link Attribute} and {@link XMLObjectAttributeValue} objects.
*/
public class SAML2XMLObjectAttributeTranscoder extends AbstractSAML2AttributeTranscoder<XMLObjectAttributeValue> {
@@ -51,13 +51,14 @@ public class SAML2XMLObjectAttributeTranscoder extends AbstractSAML2AttributeTra
@Nonnull private final Logger log = LoggerFactory.getLogger(SAML2XMLObjectAttributeTranscoder.class);
/** {@inheritDoc} */
- @Override protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute,
- @Nonnull final IdPAttributeValue value) {
+ @Override
+ protected boolean canEncodeValue(@Nonnull final IdPAttribute attribute, @Nonnull final IdPAttributeValue value) {
return value instanceof XMLObjectAttributeValue;
}
/** {@inheritDoc} */
- @Override @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Override
+ @Nullable protected XMLObject encodeValue(@Nullable final ProfileRequestContext profileRequestContext,
@Nonnull final IdPAttribute attribute, @Nonnull final TranscodingRule rule,
@Nonnull final XMLObjectAttributeValue value) throws AttributeEncodingException {
@@ -66,9 +67,9 @@ public class SAML2XMLObjectAttributeTranscoder extends AbstractSAML2AttributeTra
}
/** {@inheritDoc} */
- @Override @Nullable protected IdPAttributeValue decodeValue(
- @Nullable final ProfileRequestContext profileRequestContext, @Nonnull final Attribute attribute,
- @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
+ @Override
+ @Nullable protected IdPAttributeValue decodeValue(@Nullable final ProfileRequestContext profileRequestContext,
+ @Nonnull final Attribute attribute, @Nonnull final TranscodingRule rule, @Nullable final XMLObject value) {
if (value == null) {
return null;
diff --git a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/package-info.java b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/package-info.java
index d7ff608da..b27185e28 100644
--- a/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/package-info.java
+++ b/shib-saml-attribute-impl/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/impl/package-info.java
@@ -18,5 +18,7 @@
/**
* Implementations of SAML transcoders.
*/
+ at NonnullElements
+package net.shibboleth.idp.saml.attribute.transcoding.impl;
-package net.shibboleth.idp.saml.attribute.transcoding.impl;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list