[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQ...

noreply at shibboleth.net noreply at shibboleth.net
Tue Sep 27 20:19:47 EDT 2016


Author: putmanb
Date: Tue Sep 27 20:19:45 2016
New Revision: 4499

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4499&view=rev
Log:
OSJ-172: MetadataQueryProtocolRequestURLBuilder encodes entityIDs improperly

Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilderTest.java

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java?rev=4499&r1=4498&r2=4499&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java	(original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java	Tue Sep 27 20:19:45 2016
@@ -20,15 +20,16 @@
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.net.URISupport;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Function;
+import com.google.common.escape.Escaper;
+import com.google.common.net.UrlEscapers;
+
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 //TODO reference to protocol spec pending in Javadoc.
 
@@ -45,6 +46,9 @@
     
     /** Function which transforms the entityID prior to substitution into the URL. */
     private Function<String, String> transformer;
+    
+    /** Path escaper for escaping the input value inserted into the URL path. */
+    private Escaper pathEscaper = UrlEscapers.urlPathSegmentEscaper();
     
     /**
      * Constructor.
@@ -87,7 +91,7 @@
         }
         
         try {
-            final String result = base +  "entities/" + URISupport.doURLEncode(entityID);
+            final String result = base +  "entities/" + pathEscaper.escape(entityID);
             log.debug("From entityID '{}' and base URL '{}', built request URL: {}", 
                     entityID, base, result);
             return result;

Modified: trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilderTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilderTest.java?rev=4499&r1=4498&r2=4499&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilderTest.java	(original)
+++ trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilderTest.java	Tue Sep 27 20:19:45 2016
@@ -30,14 +30,14 @@
     public void testWithoutTrailingSlash() {
         function = new MetadataQueryProtocolRequestURLBuilder("http://metadata.example.org/service");
         
-        Assert.assertEquals(function.apply("http://example.org/idp"), "http://metadata.example.org/service/entities/http%3A%2F%2Fexample.org%2Fidp");
+        Assert.assertEquals(function.apply("http://example.org/idp"), "http://metadata.example.org/service/entities/http:%2F%2Fexample.org%2Fidp");
     }
 
     @Test
     public void testWithTrailingSlash() {
         function = new MetadataQueryProtocolRequestURLBuilder("http://metadata.example.org/service/");
         
-        Assert.assertEquals(function.apply("http://example.org/idp"), "http://metadata.example.org/service/entities/http%3A%2F%2Fexample.org%2Fidp");
+        Assert.assertEquals(function.apply("http://example.org/idp"), "http://metadata.example.org/service/entities/http:%2F%2Fexample.org%2Fidp");
     }
     
     @Test



More information about the commits mailing list