[java-opensaml COMMIT] in /trunk/opensaml-saml-api/src/main/java/org/opensaml/saml: common/binding/EndpointResolver.j...

noreply at shibboleth.net noreply at shibboleth.net
Tue Feb 11 21:52:39 EST 2014


Author: scantor
Date: Tue Feb 11 21:52:39 2014
New Revision: 3614

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3614&view=rev
Log:
Revising criterion objects for endpoint resolver.

Added:
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/EndpointCriterion.java
      - copied, changed from r3613, trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/EndpointTypeCriterion.java
Modified:
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/EndpointResolver.java
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/BindingCriterion.java
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/EndpointTypeCriterion.java

Modified: trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/EndpointResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/EndpointResolver.java?rev=3614&r1=3613&r2=3614&view=diff
==============================================================================
--- trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/EndpointResolver.java (original)
+++ trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/binding/EndpointResolver.java Tue Feb 11 21:52:39 2014
@@ -32,10 +32,8 @@
  * At a minimum, an {@link EndpointResolver} implementation MUST support the following criteria:
  * <ul>
  * <li>{@link org.opensaml.saml.criterion.BindingCriterion}</li>
- * <li>{@link org.opensaml.saml.criterion.BindingLocationCriterion}</li>
- * <li>{@link org.opensaml.saml.criterion.BindingResponseLocationCriterion}</li>
+ * <li>{@link org.opensaml.saml.criterion.EndpointCriterion}</li>
  * <li>{@link org.opensaml.saml.criterion.RoleDescriptorCriterion}</li>
- * <li>{@link org.opensaml.saml.criterion.EndpointTypeCriterion}</li>
  * </ul>
  * 
  * Implementations SHOULD also support the following criteria when possible:

Modified: trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/BindingCriterion.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/BindingCriterion.java?rev=3614&r1=3613&r2=3614&view=diff
==============================================================================
--- trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/BindingCriterion.java (original)
+++ trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/BindingCriterion.java Tue Feb 11 21:52:39 2014
@@ -17,26 +17,41 @@
 
 package org.opensaml.saml.criterion;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import javax.annotation.Nonnull;
 
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import com.google.common.collect.ImmutableList;
+
+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 net.shibboleth.utilities.java.support.resolver.Criterion;
 
-/** {@link Criterion} representing a SAML binding. */
+/** {@link Criterion} representing an ordered list of SAML bindings. */
 public final class BindingCriterion implements Criterion {
 
     /** The SAML binding URI. */
-    @Nonnull @NotEmpty private final String binding;
+    @Nonnull @NonnullElements private final List<String> bindings;
 
     /**
      * Constructor.
      * 
-     * @param bindingUri the SAML binding URI
+     * @param bindingURIs list of SAML binding URIs
      */
-    public BindingCriterion(@Nonnull @NotEmpty final String bindingUri) {
-        binding = Constraint.isNotNull(StringSupport.trimOrNull(bindingUri), "Binding URI cannot be null or empty");
+    public BindingCriterion(@Nonnull @NonnullElements final List<String> bindingURIs) {
+        Constraint.isNotNull(bindingURIs, "Binding list cannot be null");
+        
+        bindings = new ArrayList(bindingURIs.size());
+        for (final String binding : bindingURIs) {
+            final String trimmed = StringSupport.trimOrNull(binding);
+            if (trimmed != null) {
+                bindings.add(trimmed);
+            }
+        }
     }
 
     /**
@@ -44,16 +59,16 @@
      * 
      * @return the SAML binding URI
      */
-    @Nonnull @NotEmpty public String getBinding() {
-        return binding;
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public List<String> getBindings() {
+        return ImmutableList.copyOf(bindings);
     }
 
     /** {@inheritDoc} */
     @Override
     public String toString() {
         StringBuilder builder = new StringBuilder();
-        builder.append("BindingCriterion [binding=");
-        builder.append(binding);
+        builder.append("BindingCriterion [bindings=");
+        builder.append(bindings);
         builder.append("]");
         return builder.toString();
     }
@@ -61,7 +76,7 @@

[... 125 lines stripped ...]


More information about the commits mailing list