[java-identity-provider COMMIT] in /trunk: idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filte...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Sep 24 10:41:06 EDT 2014
Author: scantor
Date: Wed Sep 24 10:41:06 2014
New Revision: 6564
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6564&view=rev
Log:
Fix the RegistrationAuthority rule to use a Set, and not treat the value as a regex.
Modified:
trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java
trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityTest.java
trunk/idp-attribute-filter-spring/src/test/java/net/shibboleth/idp/attribute/filter/spring/saml/RegistrationAuthorityRuleParserTest.java
Modified: trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java?rev=6564&r1=6563&r2=6564&view=diff
==============================================================================
--- trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java (original)
+++ trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java Wed Sep 24 10:41:06 2014
@@ -17,10 +17,19 @@
package net.shibboleth.idp.attribute.filter.policyrule.saml.impl;
+import java.util.Collection;
+import java.util.Set;
+
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
+import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
@@ -31,36 +40,47 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Sets;
+
/**
* This filter filters on mdrpi in the SP's metadata.
*/
public class RegistrationAuthorityPolicyRule extends AbstractPolicyRule {
/** Class logger. */
- private final Logger log = LoggerFactory.getLogger(RegistrationAuthorityPolicyRule.class);
+ @Nonnull private final Logger log = LoggerFactory.getLogger(RegistrationAuthorityPolicyRule.class);
/** The issuers to match against. */
- private String[] issuers = new String[0];
+ @Nonnull @NonnullElements private Set<String> issuers;
/** What to say if no MDRPI is present. */
private boolean matchIfMetadataSilent;
/**
- * get the issuers.
+ * Get the candidate issuers.
*
- * @return Returns the issuers.
+ * @return the issuers
*/
- public String[] getIssuers() {
- return issuers;
+ @Nonnull @NonnullElements @Unmodifiable @NotLive public Set<String> getIssuers() {
+ return ImmutableSet.copyOf(issuers);
}
/**
- * Set the issuers.
+ * Set the candidate issuers.
*
- * @param theIssuers The issuers to set.
+ * @param theIssuers candidate issuers
*/
- public void setIssuers(String[] theIssuers) {
- issuers = theIssuers;
+ public void setIssuers(@Nonnull @NonnullElements final Collection<String> theIssuers) {
+ Constraint.isNotNull(theIssuers, "Issuer collection cannot be null");
+
+ issuers = Sets.newHashSetWithExpectedSize(theIssuers.size());
+ for (final String s : theIssuers) {
+ final String trimmed = StringSupport.trimOrNull(s);
+ if (trimmed != null) {
+ issuers.add(trimmed);
+ }
+ }
}
/**
@@ -77,7 +97,7 @@
*
* @param value The matchIfMetadataSilent to set.
*/
- public void setMatchIfMetadataSilent(boolean value) {
+ public void setMatchIfMetadataSilent(final boolean value) {
matchIfMetadataSilent = value;
}
@@ -87,7 +107,7 @@
* @param filterContext the context of the operation
* @return The registration info for the SP in the context
*/
- private RegistrationInfo getRegistrationInfo(AttributeFilterContext filterContext) {
+ @Nullable private RegistrationInfo getRegistrationInfo(@Nonnull final AttributeFilterContext filterContext) {
final SAMLMetadataContext metadataContext = filterContext.getRequesterMetadataContext();
if (null == metadataContext) {
@@ -128,7 +148,7 @@
}
/** {@inheritDoc} */
- @Override public Tristate matches(@Nonnull AttributeFilterContext filterContext) {
[... 121 lines stripped ...]
More information about the commits
mailing list