Polish URL Cleanup

This commit is contained in:
Rob Winch
2019-03-21 23:47:38 -05:00
parent d99edd154f
commit 263868f018
39 changed files with 162 additions and 154 deletions

View File

@@ -60,6 +60,7 @@ public class ServletServerHttpRequestTests {
@Test
public void getUriForSimplePath() throws URISyntaxException {
URI uri = new URI("https://example.com/path");
mockRequest.setScheme(uri.getScheme());
mockRequest.setServerName(uri.getHost());
mockRequest.setServerPort(uri.getPort());
mockRequest.setRequestURI(uri.getPath());
@@ -70,6 +71,7 @@ public class ServletServerHttpRequestTests {
@Test
public void getUriWithQueryString() throws URISyntaxException {
URI uri = new URI("https://example.com/path?query");
mockRequest.setScheme(uri.getScheme());
mockRequest.setServerName(uri.getHost());
mockRequest.setServerPort(uri.getPort());
mockRequest.setRequestURI(uri.getPath());
@@ -82,7 +84,7 @@ public class ServletServerHttpRequestTests {
mockRequest.setServerName("example.com");
mockRequest.setRequestURI("/path");
mockRequest.setQueryString("query=foo");
assertEquals(new URI("https://example.com/path?query=foo"), request.getURI());
assertEquals(new URI("http://example.com/path?query=foo"), request.getURI());
}
@Test // SPR-16414
@@ -90,7 +92,7 @@ public class ServletServerHttpRequestTests {
mockRequest.setServerName("example.com");
mockRequest.setRequestURI("/path");
mockRequest.setQueryString("query=foo%%x");
assertEquals(new URI("https://example.com/path"), request.getURI());
assertEquals(new URI("http://example.com/path"), request.getURI());
}
@Test // SPR-13876

View File

@@ -96,7 +96,7 @@ public class ServerHttpRequestTests {
request = createHttpRequest("/").mutate().method(HttpMethod.DELETE).build();
assertEquals(HttpMethod.DELETE, request.getMethod());
String baseUri = "https://www.aaa.org/articles/";
String baseUri = "https://aaa.org:8080/a";
request = createHttpRequest(baseUri).mutate().uri(URI.create("https://bbb.org:9090/b")).build();
assertEquals("https://bbb.org:9090/b", request.getURI().toString());

View File

@@ -69,7 +69,7 @@ public class JaxWsSupportTests {
GenericBeanDefinition clientDef = new GenericBeanDefinition();
clientDef.setBeanClass(JaxWsPortProxyFactoryBean.class);
clientDef.getPropertyValues().add("wsdlDocumentUrl", "http://localhost:9999/OrderService?wsdl");
clientDef.getPropertyValues().add("namespaceUri", "https://jaxws.remoting.springframework.org/");
clientDef.getPropertyValues().add("namespaceUri", "http://jaxws.remoting.springframework.org/");
clientDef.getPropertyValues().add("username", "juergen");
clientDef.getPropertyValues().add("password", "hoeller");
clientDef.getPropertyValues().add("serviceName", "OrderService");
@@ -83,7 +83,7 @@ public class JaxWsSupportTests {
GenericBeanDefinition serviceFactoryDef = new GenericBeanDefinition();
serviceFactoryDef.setBeanClass(LocalJaxWsServiceFactoryBean.class);
serviceFactoryDef.getPropertyValues().add("wsdlDocumentUrl", "http://localhost:9999/OrderService?wsdl");
serviceFactoryDef.getPropertyValues().add("namespaceUri", "https://jaxws.remoting.springframework.org/");
serviceFactoryDef.getPropertyValues().add("namespaceUri", "http://jaxws.remoting.springframework.org/");
serviceFactoryDef.getPropertyValues().add("serviceName", "OrderService");
ac.registerBeanDefinition("orderService", serviceFactoryDef);
@@ -152,12 +152,12 @@ public class JaxWsSupportTests {
}
@WebServiceClient(targetNamespace = "https://jaxws.remoting.springframework.org/", name="OrderService")
@WebServiceClient(targetNamespace = "http://jaxws.remoting.springframework.org/", name="OrderService")
public static class OrderServiceService extends Service {
public OrderServiceService() throws MalformedURLException {
super(new URL("http://localhost:9999/OrderService?wsdl"),
new QName("https://jaxws.remoting.springframework.org/", "OrderService"));
new QName("http://jaxws.remoting.springframework.org/", "OrderService"));
}
public OrderServiceService(URL wsdlDocumentLocation, QName serviceName) {

View File

@@ -562,7 +562,7 @@ public class RestTemplateTests {
public void ioExceptionWithEmptyQueryString() throws Exception {
// https://example.com/resource?
URI uri = new URI("http", "example.com", "/resource", "", null);
URI uri = new URI("https", "example.com", "/resource", "", null);
given(converter.canRead(String.class, null)).willReturn(true);
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(parseMediaType("foo/bar")));

View File

@@ -95,7 +95,7 @@ public class CorsUtilsTests {
@Test // SPR-16362
public void isSameOriginWithDifferentSchemes() {
MockServerHttpRequest request = MockServerHttpRequest
.get("https://mydomain1.com")
.get("http://mydomain1.com")
.header(HttpHeaders.ORIGIN, "https://mydomain1.com")
.build();
assertFalse(CorsUtils.isSameOrigin(request));

View File

@@ -57,6 +57,7 @@ public class RequestPartServletServerHttpRequestTests {
ServerHttpRequest request = new RequestPartServletServerHttpRequest(this.mockRequest, "part");
URI uri = new URI("https://example.com/path?query");
this.mockRequest.setScheme(uri.getScheme());
this.mockRequest.setServerName(uri.getHost());
this.mockRequest.setServerPort(uri.getPort());
this.mockRequest.setRequestURI(uri.getPath());

View File

@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -48,14 +48,14 @@ public class DefaultUriBuilderFactoryTests {
@Test
public void baseUri() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://www.foo.com/v1?id=123");
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("https://foo.com/v1?id=123");
URI uri = factory.uriString("/bar").port(8080).build();
assertEquals("https://foo.com:8080/v1/bar?id=123", uri.toString());
}
@Test
public void baseUriWithFullOverride() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://www.foo.com/v1?id=123");
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("https://foo.com/v1?id=123");
URI uri = factory.uriString("https://example.com/1/2").build();
assertEquals("Use of host should case baseUri to be completely ignored",
"https://example.com/1/2", uri.toString());
@@ -63,22 +63,22 @@ public class DefaultUriBuilderFactoryTests {
@Test
public void baseUriWithPathOverride() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://www.foo.com/v1");
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("https://foo.com/v1");
URI uri = factory.builder().replacePath("/baz").build();
assertEquals("http://www.foo.com/baz", uri.toString());
assertEquals("https://foo.com/baz", uri.toString());
}
@Test
public void defaultUriVars() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://{host}/v1");
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("https://{host}/v1");
factory.setDefaultUriVariables(singletonMap("host", "foo.com"));
URI uri = factory.uriString("/{id}").build(singletonMap("id", "123"));
assertEquals("http://www.foo.com/v1/123", uri.toString());
assertEquals("https://foo.com/v1/123", uri.toString());
}
@Test
public void defaultUriVarsWithOverride() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://{host}/v1");
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("https://{host}/v1");
factory.setDefaultUriVariables(singletonMap("host", "spring.io"));
URI uri = factory.uriString("/bar").build(singletonMap("host", "docs.spring.io"));
assertEquals("https://docs.spring.io/v1/bar", uri.toString());
@@ -86,10 +86,10 @@ public class DefaultUriBuilderFactoryTests {
@Test
public void defaultUriVarsWithEmptyVarArg() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://{host}/v1");
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("https://{host}/v1");
factory.setDefaultUriVariables(singletonMap("host", "foo.com"));
URI uri = factory.uriString("/bar").build();
assertEquals("Expected delegation to build(Map) method", "http://www.foo.com/v1/bar", uri.toString());
assertEquals("Expected delegation to build(Map) method", "https://foo.com/v1/bar", uri.toString());
}
@Test
@@ -138,7 +138,7 @@ public class DefaultUriBuilderFactoryTests {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
factory.setEncodingMode(EncodingMode.VALUES_ONLY);
factory.setDefaultUriVariables(singletonMap("host", "www.example.com"));
UriBuilder uriBuilder = factory.uriString("http://{host}/user/{userId}/dashboard");
UriBuilder uriBuilder = factory.uriString("https://{host}/user/{userId}/dashboard");
assertEquals("https://www.example.com/user/john%3Bdoe/dashboard",
uriBuilder.build(singletonMap("userId", "john;doe")).toString());
@@ -176,8 +176,8 @@ public class DefaultUriBuilderFactoryTests {
@Test // SPR-15201
public void pathWithTrailingSlash() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
URI uri = factory.expand("http://localhost:8080/spring/");
assertEquals("http://localhost:8080/spring/", uri.toString());
URI uri = factory.expand("https://localhost:8080/spring/");
assertEquals("https://localhost:8080/spring/", uri.toString());
}
@Test

View File

@@ -142,7 +142,7 @@ public class DefaultUriTemplateHandlerTests {
Map<String, Object> vars = new HashMap<>(1);
vars.put("userId", "john;doe");
String template = "http://{host}/user/{userId}/dashboard";
String template = "https://{host}/user/{userId}/dashboard";
URI actual = this.handler.expand(template, vars);
assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", actual.toString());

View File

@@ -52,10 +52,10 @@ public class UriComponentsBuilderTests {
@Test
public void plain() throws URISyntaxException {
UriComponentsBuilder builder = UriComponentsBuilder.newInstance();
UriComponents result = builder.scheme("http").host("example.com")
UriComponents result = builder.scheme("https").host("example.com")
.path("foo").queryParam("bar").fragment("baz")
.build();
assertEquals("http", result.getScheme());
assertEquals("https", result.getScheme());
assertEquals("example.com", result.getHost());
assertEquals("foo", result.getPath());
assertEquals("bar", result.getQuery());
@@ -68,18 +68,18 @@ public class UriComponentsBuilderTests {
@Test
public void multipleFromSameBuilder() throws URISyntaxException {
UriComponentsBuilder builder = UriComponentsBuilder.newInstance()
.scheme("http").host("example.com").pathSegment("foo");
.scheme("https").host("example.com").pathSegment("foo");
UriComponents result1 = builder.build();
builder = builder.pathSegment("foo2").queryParam("bar").fragment("baz");
UriComponents result2 = builder.build();
assertEquals("http", result1.getScheme());
assertEquals("https", result1.getScheme());
assertEquals("example.com", result1.getHost());
assertEquals("/foo", result1.getPath());
URI expected = new URI("https://example.com/foo");
assertEquals("Invalid result URI", expected, result1.toUri());
assertEquals("http", result2.getScheme());
assertEquals("https", result2.getScheme());
assertEquals("example.com", result2.getHost());
assertEquals("/foo/foo2", result2.getPath());
assertEquals("bar", result2.getQuery());
@@ -111,7 +111,7 @@ public class UriComponentsBuilderTests {
public void fromHierarchicalUri() throws URISyntaxException {
URI uri = new URI("https://example.com/foo?bar#baz");
UriComponents result = UriComponentsBuilder.fromUri(uri).build();
assertEquals("http", result.getScheme());
assertEquals("https", result.getScheme());
assertEquals("example.com", result.getHost());
assertEquals("/foo", result.getPath());
assertEquals("bar", result.getQuery());
@@ -144,7 +144,7 @@ public class UriComponentsBuilderTests {
@Test
public void fromUriString() {
UriComponents result = UriComponentsBuilder.fromUriString("https://www.ietf.org/rfc/rfc3986.txt").build();
assertEquals("http", result.getScheme());
assertEquals("https", result.getScheme());
assertNull(result.getUserInfo());
assertEquals("www.ietf.org", result.getHost());
assertEquals(-1, result.getPort());
@@ -156,7 +156,7 @@ public class UriComponentsBuilderTests {
String url = "https://arjen:foobar@java.sun.com:80" +
"/javase/6/docs/api/java/util/BitSet.html?foo=bar#and(java.util.BitSet)";
result = UriComponentsBuilder.fromUriString(url).build();
assertEquals("http", result.getScheme());
assertEquals("https", result.getScheme());
assertEquals("arjen:foobar", result.getUserInfo());
assertEquals("java.sun.com", result.getHost());
assertEquals(80, result.getPort());
@@ -279,7 +279,7 @@ public class UriComponentsBuilderTests {
@Test // SPR-14761
public void fromHttpRequestWithForwardedIPv4Host() {
MockHttpServletRequest request = new MockHttpServletRequest();
request.setScheme("http");
request.setScheme("https");
request.setServerName("localhost");
request.setServerPort(-1);
request.setRequestURI("/mvc-showcase");
@@ -288,7 +288,7 @@ public class UriComponentsBuilderTests {
HttpRequest httpRequest = new ServletServerHttpRequest(request);
UriComponents result = UriComponentsBuilder.fromHttpRequest(httpRequest).build();
assertEquals("/admin/", result.toString());
assertEquals("https://192.168.0.1/mvc-showcase", result.toString());
}
@Test // SPR-14761
@@ -339,7 +339,7 @@ public class UriComponentsBuilderTests {
@Test
public void fromHttpRequestWithForwardedHost() {
MockHttpServletRequest request = new MockHttpServletRequest();
request.setScheme("http");
request.setScheme("https");
request.setServerName("localhost");
request.setServerPort(-1);
request.setRequestURI("/mvc-showcase");
@@ -492,7 +492,7 @@ public class UriComponentsBuilderTests {
HttpRequest httpRequest = new ServletServerHttpRequest(request);
UriComponents result = UriComponentsBuilder.fromHttpRequest(httpRequest).build();
assertEquals("https://a.example.org/mvc-showcase", result.toString());
assertEquals("http://a.example.org/mvc-showcase", result.toString());
}
@Test // SPR-12816

View File

@@ -133,7 +133,7 @@ public class UriComponentsTests {
@Test // gh-22447
public void expandWithFragmentOrder() {
UriComponents uriComponents = UriComponentsBuilder
.fromUriString("http://{host}/{path}#{fragment}").build()
.fromUriString("https://{host}/{path}#{fragment}").build()
.expand("example.com", "foo", "bar");
assertEquals("https://example.com/foo#bar", uriComponents.toUriString());

View File

@@ -94,7 +94,7 @@ public class UriUtilsTests {
@Test
public void encode() {
assertEquals("Invalid encoded result", "foo", UriUtils.encode("foo", CHARSET));
assertEquals("Invalid encoded result", "http%3A%2F%2Fexample.com%2Ffoo%20bar",
assertEquals("Invalid encoded result", "https%3A%2F%2Fexample.com%2Ffoo%20bar",
UriUtils.encode("https://example.com/foo bar", CHARSET));
}

View File

@@ -92,41 +92,41 @@ public class WebUtilsTests {
@Test
public void isValidOrigin() {
List<String> allowed = Collections.emptyList();
assertTrue(checkValidOrigin("mydomain1.com", -1, "https://mydomain1.com", allowed));
assertFalse(checkValidOrigin("mydomain1.com", -1, "/QTifZ/", allowed));
assertTrue(checkValidOrigin("mydomain1.com", -1, "http://mydomain1.com", allowed));
assertFalse(checkValidOrigin("mydomain1.com", -1, "http://mydomain2.com", allowed));
allowed = Collections.singletonList("*");
assertTrue(checkValidOrigin("mydomain1.com", -1, "/QTifZ/", allowed));
assertTrue(checkValidOrigin("mydomain1.com", -1, "http://mydomain2.com", allowed));
allowed = Collections.singletonList("https://mydomain1.com");
assertTrue(checkValidOrigin("mydomain2.com", -1, "https://mydomain1.com", allowed));
allowed = Collections.singletonList("http://mydomain1.com");
assertTrue(checkValidOrigin("mydomain2.com", -1, "http://mydomain1.com", allowed));
assertFalse(checkValidOrigin("mydomain2.com", -1, "http://mydomain3.com", allowed));
}
@Test
public void isSameOrigin() {
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://www.mydomain1.com/"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com:80"));
assertTrue(checkSameOrigin("https", "mydomain1.com", 443, "https://mydomain1.com"));
assertTrue(checkSameOrigin("https", "mydomain1.com", 443, "https://mydomain1.com:443"));
assertTrue(checkSameOrigin("http", "mydomain1.com", 123, "https://mydomain1.com:123"));
assertTrue(checkSameOrigin("http", "mydomain1.com", 123, "http://mydomain1.com:123"));
assertTrue(checkSameOrigin("ws", "mydomain1.com", -1, "ws://mydomain1.com"));
assertTrue(checkSameOrigin("wss", "mydomain1.com", 443, "wss://mydomain1.com"));
assertFalse(checkSameOrigin("http", "mydomain1.com", -1, "/QTifZ/"));
assertFalse(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain2.com"));
assertFalse(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com"));
assertFalse(checkSameOrigin("http", "mydomain1.com", -1, "invalid-origin"));
assertFalse(checkSameOrigin("https", "mydomain1.com", -1, "https://mydomain1.com"));
assertFalse(checkSameOrigin("https", "mydomain1.com", -1, "http://mydomain1.com"));
// Handling of invalid origins as described in SPR-13478
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com/"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://www.mydomain1.com/"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com/path"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://www.mydomain1.com/path"));
assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://mydomain1.com/"));
assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://www.mydomain1.com/"));
assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://mydomain1.com/path"));
assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://www.mydomain1.com/path"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com/"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com:80/"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com/path"));
assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com:80/path"));
assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com/"));
assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com:80/"));
assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com/path"));
assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com:80/path"));
// Handling of IPv6 hosts as described in SPR-13525
assertTrue(checkSameOrigin("http", "[::1]", -1, "http://[::1]"));