[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