[java-shib-attribute] branch main updated: PoilicyRequirementRule matches method should be non-null.
Scott Cantor
cantor.2 at osu.edu
Tue May 2 14:34:47 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=1cb8a0b7899c48a1287dd33e2d3e66f31437f593
The following commit(s) were added to refs/heads/main by this push:
new 1cb8a0b78 PoilicyRequirementRule matches method should be non-null.
1cb8a0b78 is described below
commit 1cb8a0b7899c48a1287dd33e2d3e66f31437f593
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue May 2 10:34:45 2023 -0400
PoilicyRequirementRule matches method should be non-null.
---
.../idp/attribute/filter/PolicyFromMatcher.java | 9 ++++---
.../attribute/filter/PolicyRequirementRule.java | 8 +++---
.../impl/AttributeIssuerPolicyRule.java | 13 +++-------
.../impl/AttributeIssuerRegexpPolicyRule.java | 12 +++------
.../impl/AttributeRequesterPolicyRule.java | 12 +++------
.../impl/AttributeRequesterRegexpPolicyRule.java | 13 +++-------
.../filtercontext/impl/PredicatePolicyRule.java | 16 ++++--------
.../impl/PrincipalNamePolicyRule.java | 12 +++------
.../impl/PrincipalNameRegexpPolicyRule.java | 11 +++-----
.../filtercontext/impl/ProfilePolicyRule.java | 12 +++------
.../impl/ProxiedRequesterPolicyRule.java | 12 +++------
.../impl/ProxiedRequesterRegexpPolicyRule.java | 13 +++-------
.../policyrule/impl/AbstractRegexpPolicyRule.java | 19 +++++++-------
.../policyrule/impl/AbstractStringPolicyRule.java | 3 ++-
.../policyrule/impl/DirectionPolicyRule.java | 3 ++-
.../logic/impl/AbstractComposedPolicyRule.java | 19 ++++++--------
.../policyrule/logic/impl/AndPolicyRule.java | 29 ++++++++++------------
.../policyrule/logic/impl/NotPolicyRule.java | 5 ++--
.../filter/policyrule/logic/impl/OrPolicyRule.java | 29 ++++++++++------------
.../impl/AbstractEntityAttributePolicyRule.java | 12 +++------
.../saml/impl/AbstractEntityGroupPolicyRule.java | 9 +------
.../impl/AbstractNameIDFormatExactPolicyRule.java | 10 ++------
.../AbstractRegistrationAuthorityPolicyRule.java | 3 ++-
.../logic/impl/AbstractComposedPolicyRuleTest.java | 12 ++++++---
.../idp/attribute/filter/testing/MockMatcher.java | 20 +++++++--------
.../filter/testing/MockPolicyRequirementRule.java | 8 +++---
.../idp/attribute/filter/testing/package-info.java | 4 ++-
27 files changed, 130 insertions(+), 198 deletions(-)
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/PolicyFromMatcher.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/PolicyFromMatcher.java
index 7f92c244f..adc2d5f24 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/PolicyFromMatcher.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/PolicyFromMatcher.java
@@ -39,12 +39,12 @@ import net.shibboleth.shared.primitive.LoggerFactory;
*/
public final class PolicyFromMatcher extends BaseBridgingClass implements PolicyRequirementRule,
IdentifiedComponent, DestructableComponent {
-
- /** The rule we are shadowing. */
- @Nonnull private final Matcher matcher;
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(PolicyFromMatcher.class);
+
+ /** The rule we are shadowing. */
+ @Nonnull private final Matcher matcher;
/**
* Constructor.
@@ -64,11 +64,12 @@ public final class PolicyFromMatcher extends BaseBridgingClass implements Policy
/** {@inheritDoc} */
@Override
- public Tristate matches(@Nonnull final AttributeFilterContext context) {
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext context) {
log.debug("{} Applying matcher supplied as policy to all values of all attributes", getLogPrefix());
for (final IdPAttribute attribute : context.getPrefilteredIdPAttributes().values()) {
+ assert attribute != null;
final Set<IdPAttributeValue> result = matcher.getMatchingValues(attribute, context);
if (null == result) {
log.warn("{} Matcher returned null, returning FAIL", getLogPrefix());
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/PolicyRequirementRule.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/PolicyRequirementRule.java
index 317076f5d..914d752f7 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/PolicyRequirementRule.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/PolicyRequirementRule.java
@@ -50,7 +50,7 @@ public interface PolicyRequirementRule extends IdentifiedComponent {
/** A {@link PolicyRequirementRule} that returns true matched. */
@Nonnull public static final PolicyRequirementRule MATCHES_ALL = new PolicyRequirementRule() {
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ @Override @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
return Tristate.TRUE;
}
@@ -63,7 +63,7 @@ public interface PolicyRequirementRule extends IdentifiedComponent {
/** A {@link PolicyRequirementRule} that returns false as matched. */
@Nonnull public static final PolicyRequirementRule MATCHES_NONE = new PolicyRequirementRule() {
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ @Override @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
return Tristate.FALSE;
}
@@ -76,7 +76,7 @@ public interface PolicyRequirementRule extends IdentifiedComponent {
/** A {@link PolicyRequirementRule} that returns failed. */
@Nonnull public static final PolicyRequirementRule REQUIREMENT_RULE_FAILS = new PolicyRequirementRule() {
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ @Override @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
return Tristate.FAIL;
}
@@ -92,6 +92,6 @@ public interface PolicyRequirementRule extends IdentifiedComponent {
* @param filterContext the context.
* @return whether the rule holds
*/
- Tristate matches(@Nonnull final AttributeFilterContext filterContext);
+ @Nonnull Tristate matches(@Nonnull final AttributeFilterContext filterContext);
}
\ No newline at end of file
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 1f7c9987d..43139cf93 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
@@ -33,15 +33,9 @@ public class AttributeIssuerPolicyRule extends AbstractStringPolicyRule {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeIssuerPolicyRule.class);
- /**
- * Compare the issuer from the context with the provided string.
- *
- * @param filterContext the context
- * @return whether it matches
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
@@ -54,4 +48,5 @@ public class AttributeIssuerPolicyRule extends AbstractStringPolicyRule {
return stringCompare(issuer);
}
+
}
\ No newline at end of file
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 a76f3f62d..5f3770ba3 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
@@ -33,15 +33,9 @@ public class AttributeIssuerRegexpPolicyRule extends AbstractRegexpPolicyRule {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeIssuerRegexpPolicyRule.class);
- /**
- * Compare the issuer from the context with the provided regexp.
- *
- * @param filterContext the context
- * @return whether it matches
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@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 1291fe665..f13641e41 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
@@ -33,15 +33,9 @@ public class AttributeRequesterPolicyRule extends AbstractStringPolicyRule {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeRequesterPolicyRule.class);
- /**
- * Compare the requester from the context with the provided string.
- *
- * @param filterContext the context
- * @return whether it matches
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@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 ba288318c..cafee4d95 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
@@ -33,15 +33,9 @@ public class AttributeRequesterRegexpPolicyRule extends AbstractRegexpPolicyRule
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(AttributeRequesterRegexpPolicyRule.class);
- /**
- * Compare the requester from the context with the provided regexp.
- *
- * @param filterContext the context
- * @return whether it matches
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
@@ -54,4 +48,5 @@ public class AttributeRequesterRegexpPolicyRule extends AbstractRegexpPolicyRule
return regexpCompare(requester);
}
+
}
\ No newline at end of file
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 d4f0f5b4a..1ac4c7653 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
@@ -46,7 +46,7 @@ public class PredicatePolicyRule extends AbstractPolicyRule {
*
* @return Returns the Predicate.
*/
- public Predicate<ProfileRequestContext> getRulePredicate() {
+ @NonnullAfterInit public Predicate<ProfileRequestContext> getRulePredicate() {
return rulePredicate;
}
@@ -68,16 +68,9 @@ public class PredicatePolicyRule extends AbstractPolicyRule {
}
}
- /**
- * Compare the issuer from the context with the provided string.
- *
- * @param filterContext the context
- * @return whether it matches. All failure and navigation issues return
- * {@link net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate#FAIL}.
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
final ProfileRequestContext pc = filterContext.getProfileRequestContextLookupStrategy().apply(filterContext);
if (null == pc) {
@@ -97,4 +90,5 @@ public class PredicatePolicyRule extends AbstractPolicyRule {
return Tristate.FAIL;
}
}
+
}
\ No newline at end of file
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 b7b4a8b99..c863ca26b 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
@@ -33,15 +33,9 @@ public class PrincipalNamePolicyRule extends AbstractStringPolicyRule {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(PrincipalNamePolicyRule.class);
- /**
- * Compare the principal name for this resolution with the provided string.
- *
- * @param filterContext the context
- * @return whether it matches
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@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 7d43f8ea9..9b3f365ef 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
@@ -33,13 +33,9 @@ public class PrincipalNameRegexpPolicyRule extends AbstractRegexpPolicyRule {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(PrincipalNameRegexpPolicyRule.class);
- /**
- * Compare the principal name for this resolution with the provided regexp.
- *
- * @param filterContext the context
- * @return whether it matches {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
@@ -52,4 +48,5 @@ public class PrincipalNameRegexpPolicyRule extends AbstractRegexpPolicyRule {
return regexpCompare(principal);
}
+
}
\ No newline at end of file
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 1c4a11d81..6ea8851f5 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
@@ -36,15 +36,9 @@ public class ProfilePolicyRule extends AbstractStringPolicyRule {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(ProfilePolicyRule.class);
- /**
- * Compare the principal name for this resolution with the provided string.
- *
- * @param filterContext the context
- * @return whether it matches
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
final ProfileRequestContext pc = filterContext.getProfileRequestContextLookupStrategy().apply(filterContext);
if (null == pc) {
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 d1f0c3ba0..de23a26b4 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
@@ -31,15 +31,9 @@ import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyR
*/
public class ProxiedRequesterPolicyRule extends AbstractStringPolicyRule {
- /**
- * Compare the requester from the context with the provided string.
- *
- * @param filterContext the context
- * @return whether it matches
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
final ProxiedRequesterContext ctx = filterContext.getProxiedRequesterContext();
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 7148e38a8..b34e5d34d 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
@@ -31,15 +31,9 @@ import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyR
*/
public class ProxiedRequesterRegexpPolicyRule extends AbstractRegexpPolicyRule {
- /**
- * Compare the requester from the context with the provided regexp.
- *
- * @param filterContext the context
- * @return whether it matches
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
checkComponentActive();
final ProxiedRequesterContext ctx = filterContext.getProxiedRequesterContext();
@@ -55,4 +49,5 @@ public class ProxiedRequesterRegexpPolicyRule extends AbstractRegexpPolicyRule {
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/AbstractRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractRegexpPolicyRule.java
index 7c8421a23..a243e44cc 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
@@ -53,6 +53,14 @@ public abstract class AbstractRegexpPolicyRule extends AbstractPolicyRule {
pattern = Constraint.isNotNull(thePattern, "Pattern supplied to setPattern but not be null");
}
+ /** {@inheritDoc} */
+ 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.
*
@@ -60,7 +68,7 @@ public abstract class AbstractRegexpPolicyRule extends AbstractPolicyRule {
*
* @return true if the value matches the given match string, false if not
*/
- protected Tristate regexpCompare(@Nullable final String value) {
+ @Nonnull protected Tristate regexpCompare(@Nullable final String value) {
checkComponentActive();
final boolean result;
@@ -78,11 +86,4 @@ public abstract class AbstractRegexpPolicyRule extends AbstractPolicyRule {
return Tristate.FALSE;
}
- /** {@inheritDoc} */
- 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/policyrule/impl/AbstractStringPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
index 961dc1958..1f9075123 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
@@ -17,6 +17,7 @@
package net.shibboleth.idp.attribute.filter.policyrule.impl;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
@@ -75,7 +76,7 @@ public abstract class AbstractStringPolicyRule extends AbstractPolicyRule implem
*
* @return true if the value matches the given match string, false if not
*/
- protected Tristate stringCompare(@Nullable final String value) {
+ @Nonnull protected Tristate stringCompare(@Nullable final String value) {
checkComponentActive();
final boolean result;
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 96d0d3637..7aaa76c1c 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,8 @@ public class DirectionPolicyRule extends AbstractPolicyRule {
}
/** {@inheritDoc} */
- public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ @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/logic/impl/AbstractComposedPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
index cecf20ec5..e46e1e68c 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,13 +25,11 @@ import javax.annotation.Nullable;
import com.google.common.base.MoreObjects;
import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
-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;
import net.shibboleth.shared.component.UnmodifiableComponent;
/**
@@ -42,7 +40,14 @@ public abstract class AbstractComposedPolicyRule extends AbstractIdentifiableIni
PolicyRequirementRule, UnmodifiableComponent {
/** The composed matchers. */
- @NonnullAfterInit private List<PolicyRequirementRule> rules;
+ @Nonnull private List<PolicyRequirementRule> rules;
+
+ /**
+ * Constructor.
+ */
+ public AbstractComposedPolicyRule() {
+ rules = CollectionSupport.emptyList();
+ }
/** Set the rules to be composed.
* Called "subsidiaries" to allow easier parsing.
@@ -57,14 +62,6 @@ public abstract class AbstractComposedPolicyRule extends AbstractIdentifiableIni
rules = CollectionSupport.emptyList();
}
}
-
- /** {@inheritDoc} */
- @Override protected void doInitialize() throws ComponentInitializationException {
- super.doInitialize();
- if (rules == null) {
- throw new ComponentInitializationException("Rules not set up");
- }
- }
/**
* Get the composed matchers.
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 0ccad92b6..d4e92bf25 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
@@ -42,20 +42,24 @@ import net.shibboleth.shared.logic.Constraint;
@ThreadSafe
public class AndPolicyRule extends AbstractComposedPolicyRule {
- /**
- * A given rule is considered to have matched if, and only if, TRUE is returned by every composed
- * rule.
- *
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override protected void doInitialize() throws ComponentInitializationException {
+ super.doInitialize();
+
+ if (getComposedRules().isEmpty()) {
+ throw new ComponentInitializationException("No policy rules supplied to AND");
+ }
+ }
+
+ /** {@inheritDoc} */
@Override
- public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
checkComponentActive();
final List<PolicyRequirementRule> rules = getComposedRules();
- for (final PolicyRequirementRule rule:rules) {
+ for (final PolicyRequirementRule rule : rules) {
final Tristate match = rule.matches(filterContext);
if (Tristate.FAIL == match) {
return Tristate.FAIL;
@@ -63,15 +67,8 @@ public class AndPolicyRule extends AbstractComposedPolicyRule {
return Tristate.FALSE;
}
}
+
return Tristate.TRUE;
}
- /** {@inheritDoc} */
- @Override protected void doInitialize() throws ComponentInitializationException {
- super.doInitialize();
- if (getComposedRules().isEmpty()) {
- throw new ComponentInitializationException("No policy rules supplied to AND");
- }
- }
-
}
\ No newline at end of file
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 95643a7e0..4ff9875a7 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
@@ -54,7 +54,7 @@ public final class NotPolicyRule extends AbstractIdentifiableInitializableCompon
*
* @return matcher that is being negated
*/
- @Nonnull public PolicyRequirementRule getNegatedRule() {
+ @NonnullAfterInit public PolicyRequirementRule getNegatedRule() {
return negatedRule;
}
@@ -68,7 +68,8 @@ public final class NotPolicyRule extends AbstractIdentifiableInitializableCompon
}
/** {@inheritDoc} */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ @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/OrPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRule.java
index 6379af66e..1de50cad3 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
@@ -42,14 +42,18 @@ import net.shibboleth.shared.logic.Constraint;
@ThreadSafe
public class OrPolicyRule extends AbstractComposedPolicyRule {
- /**
- * A given rule is considered to have matched as soon as TRUE is returned by any composed
- * rule. It is considered to have failed as soon as FAIL is returned by any composed
- * rule.
- *
- * {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@inheritDoc} */
+ @Override protected void doInitialize() throws ComponentInitializationException {
+ super.doInitialize();
+
+ if (getComposedRules().isEmpty()) {
+ throw new ComponentInitializationException("No policy rules supplied to OR");
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
checkComponentActive();
@@ -65,12 +69,5 @@ public class OrPolicyRule extends AbstractComposedPolicyRule {
}
return Tristate.FALSE;
}
-
- /** {@inheritDoc} */
- @Override protected void doInitialize() throws ComponentInitializationException {
- super.doInitialize();
- if (getComposedRules().isEmpty()) {
- throw new ComponentInitializationException("No policy rules supplied to OR");
- }
- }
+
}
\ No newline at end of file
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 9ad0b0a49..9b27d747f 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
@@ -160,15 +160,9 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
}
}
- /**
- * Checks to see if the entity returned by {@link #getEntityMetadata(AttributeFilterContext)} contains the entity
- * attribute specified by this matcher's configuration.
- *
- * @param filterContext current request context
- *
- * @return whether the entity has the configured attribute {@inheritDoc}
- */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ /** {@inheritDoc} */
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
Constraint.isNotNull(filterContext, "Context must be supplied");
checkComponentActive();
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 d37a65f23..a950be914 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
@@ -115,14 +115,7 @@ public abstract class AbstractEntityGroupPolicyRule extends AbstractPolicyRule {
@Nullable protected abstract EntityDescriptor getEntityMetadata(
@Nonnull final AttributeFilterContext filterContext);
- /**
- * Checks if the given entity is in the provided entity group.
- *
- * @param input the context to look at
- *
- * @return whether the entity is in the group
- * {@inheritDoc}
- */
+ /** {@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 001ad81d5..9db2fe6a6 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
@@ -83,15 +83,9 @@ public abstract class AbstractNameIDFormatExactPolicyRule extends AbstractPolicy
@Nullable protected abstract SSODescriptor getEntitySSODescriptor(
@Nonnull final AttributeFilterContext filterContext);
- /**
- * Checks to see if the metadata for the entity supports the required NameID format.
- *
- * @param filterContext current filter context
- *
- * @return true if the entity supports the required NameID format, false otherwise
- * {@inheritDoc}
- */
+ /** {@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/saml/impl/AbstractRegistrationAuthorityPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractRegistrationAuthorityPolicyRule.java
index 272048ffb..a13f25764 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
@@ -157,7 +157,8 @@ public abstract class AbstractRegistrationAuthorityPolicyRule extends AbstractPo
}
/** {@inheritDoc} */
- @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
+ @Override
+ @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
final RegistrationInfo info = getRegistrationInfo(filterContext);
if (info == null) {
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRuleTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRuleTest.java
index 5a851400d..c53235acf 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRuleTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRuleTest.java
@@ -23,6 +23,7 @@ import static org.testng.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.testng.annotations.Test;
@@ -130,16 +131,18 @@ public class AbstractComposedPolicyRuleTest {
setSubsidiaries(composedMatchers);
}
+ /** {@inheritDoc} */
@Override
- public Tristate matches(@Nullable final AttributeFilterContext arg0) {
+ @Nonnull public Tristate matches(@Nullable final AttributeFilterContext arg0) {
return Tristate.FALSE;
}
}
- public static class TestMatcher extends AbstractInitializableComponent implements PolicyRequirementRule, DestructableComponent, InitializableComponent {
+ public static class TestMatcher extends AbstractInitializableComponent implements PolicyRequirementRule, DestructableComponent, InitializableComponent {
+ /** {@inheritDoc} */
@Override
- public Tristate matches(@Nullable final AttributeFilterContext arg0) {
+ @Nonnull public Tristate matches(@Nullable final AttributeFilterContext arg0) {
return Tristate.FALSE;
}
@@ -150,4 +153,5 @@ public class AbstractComposedPolicyRuleTest {
}
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/MockMatcher.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/MockMatcher.java
index 35025cf76..80698762f 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/MockMatcher.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/MockMatcher.java
@@ -38,14 +38,13 @@ import net.shibboleth.shared.primitive.StringSupport;
public class MockMatcher extends AbstractIdentifiedInitializableComponent implements Matcher {
/** ID of the attribute to which this matcher applies. */
- private String matchingAttribute;
+ @Nullable private String matchingAttribute;
/** Values, of the attribute, considered to match this matcher. */
- private Collection<?> matchingValues;
+ @Nullable private Collection<?> matchingValues;
/** state variable */
private boolean initialized;
-
/** do we fail when validate is called? do we fail when we are called?*/
private boolean fails;
@@ -60,7 +59,7 @@ public class MockMatcher extends AbstractIdentifiedInitializableComponent implem
*
* @param id ID of the attribute to which this matcher applies
*/
- public void setMatchingAttribute(String id) {
+ public void setMatchingAttribute(@Nonnull final String id) {
matchingAttribute = Constraint.isNotNull(StringSupport.trimOrNull(id), "attribute ID can not be null or empty");
if (!initialized) {
setId("Mock " + id);
@@ -73,7 +72,7 @@ public class MockMatcher extends AbstractIdentifiedInitializableComponent implem
*
* @param values values, of the attribute, considered to match this matcher
*/
- public void setMatchingValues(Collection<?> values) {
+ public void setMatchingValues(@Nullable final Collection<?> values) {
matchingValues = values;
}
@@ -91,9 +90,9 @@ public class MockMatcher extends AbstractIdentifiedInitializableComponent implem
return CollectionSupport.copyToSet(attribute.getValues());
}
- LinkedHashSet<IdPAttributeValue> values = new LinkedHashSet<>();
- for (IdPAttributeValue value : attribute.getValues()) {
- if (matchingValues.contains(value)) {
+ final LinkedHashSet<IdPAttributeValue> values = new LinkedHashSet<>();
+ for (final IdPAttributeValue value : attribute.getValues()) {
+ if (matchingValues != null && matchingValues.contains(value)) {
values.add(value);
}
}
@@ -118,7 +117,8 @@ public class MockMatcher extends AbstractIdentifiedInitializableComponent implem
/** set whether we are going to fail {{@link #getMatchingValues(IdPAttribute, AttributeFilterContext)}.
* @param doFail whether we are going to fail.
*/
- public void setFailValidate(boolean doFail) {
+ public void setFailValidate(final boolean doFail) {
fails = doFail;
}
-}
+
+}
\ No newline at end of file
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/MockPolicyRequirementRule.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/MockPolicyRequirementRule.java
index b5a4abe75..3ad626987 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/MockPolicyRequirementRule.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/MockPolicyRequirementRule.java
@@ -18,6 +18,7 @@
package net.shibboleth.idp.attribute.filter.testing;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import net.shibboleth.idp.attribute.filter.Matcher;
import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
@@ -32,7 +33,7 @@ public class MockPolicyRequirementRule extends AbstractIdentifiedInitializableCo
private boolean initialized;
/** to return from matcher(). */
- private Tristate retVal;
+ @Nullable private Tristate retVal;
/** Constructor. */
public MockPolicyRequirementRule() {
@@ -60,7 +61,8 @@ public class MockPolicyRequirementRule extends AbstractIdentifiedInitializableCo
/** {@inheritDoc} */
@Override
- public Tristate matches(@Nonnull AttributeFilterContext filterContext) {
- return retVal;
+ @Nonnull public Tristate matches(@Nonnull AttributeFilterContext filterContext) {
+ return retVal != null ? retVal : Tristate.FAIL;
}
+
}
\ No newline at end of file
diff --git a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/package-info.java b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/package-info.java
index 60d1ba9ab..f9c4ab3ca 100644
--- a/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/package-info.java
+++ b/shib-attribute-testing/src/main/java/net/shibboleth/idp/attribute/filter/testing/package-info.java
@@ -18,5 +18,7 @@
/**
* Testing utility classes.
*/
+ at NonnullElements
+package net.shibboleth.idp.attribute.filter.testing;
-package net.shibboleth.idp.attribute.filter.testing;
\ 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