summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-01-24 14:16:11 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-01-24 14:16:11 +0100
commitae3d728e62bd3ff00ecf14649504aa34773cf63e (patch)
tree944e742dca341c8e4c510e09994f29212b97cade
parent3ba4dac28e917a9d9d86f7879093a84ea8419d0f (diff)
Properly encode the URI to avoid normalization.
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java11
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/Request.java15
-rw-r--r--jdisc_core/src/test/java/com/yahoo/jdisc/RequestTestCase.java16
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java2
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/RestUriTest.java2
5 files changed, 4 insertions, 42 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java b/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java
index e54cd6817b1..fa875e53875 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/HttpRequest.java
@@ -461,7 +461,7 @@ public class HttpRequest {
}
/**
- * Get the full normalized URI corresponding to this request.
+ * Get the full URI corresponding to this request.
*
* @return the URI of this request
*/
@@ -470,15 +470,6 @@ public class HttpRequest {
}
/**
- * Get the full original URI corresponding to this request.
- *
- * @return the URI of this request
- */
- public URI getRawUri() {
- return parentRequest.getRawUri();
- }
-
- /**
* Access the underlying JDisc for this HTTP request.
*
* @return the corresponding JDisc request instance
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/Request.java b/jdisc_core/src/main/java/com/yahoo/jdisc/Request.java
index 4f7ccee64bf..d893bb443b7 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/Request.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/Request.java
@@ -46,7 +46,6 @@ public class Request extends AbstractResource {
private TimeoutManager timeoutManager;
private boolean serverRequest;
private Long timeout;
- private URI rawUri;
private URI uri;
/**
@@ -126,7 +125,7 @@ public class Request extends AbstractResource {
}
/**
- * <p>Returns the normalized Uniform Resource Identifier used by the {@link Container} to resolve the appropriate {@link
+ * <p>Returns the Uniform Resource Identifier used by the {@link Container} to resolve the appropriate {@link
* RequestHandler} for this Request.</p>
*
* @return The resource identifier.
@@ -137,17 +136,6 @@ public class Request extends AbstractResource {
}
/**
- * <p>Returns the original raw Uniform Resource Identifier used by the {@link Container} to resolve the appropriate {@link
- * RequestHandler} for this Request.</p>
- *
- * @return The resource identifier.
- * @see #setUri(URI)
- */
- public URI getRawUri() {
- return rawUri;
- }
-
- /**
* <p>Sets the Uniform Resource Identifier used by the {@link Container} to resolve the appropriate {@link
* RequestHandler} for this Request. Because access to the URI is not guarded by any lock, any changes made after
* calling {@link #connect(ResponseHandler)} might never become visible to other threads.</p>
@@ -157,7 +145,6 @@ public class Request extends AbstractResource {
* @see #getUri()
*/
public Request setUri(URI uri) {
- this.rawUri = uri;
this.uri = uri.normalize();
return this;
}
diff --git a/jdisc_core/src/test/java/com/yahoo/jdisc/RequestTestCase.java b/jdisc_core/src/test/java/com/yahoo/jdisc/RequestTestCase.java
index 6c2b62a49ab..fe5af79a6d3 100644
--- a/jdisc_core/src/test/java/com/yahoo/jdisc/RequestTestCase.java
+++ b/jdisc_core/src/test/java/com/yahoo/jdisc/RequestTestCase.java
@@ -63,22 +63,6 @@ public class RequestTestCase {
}
@Test
- public void requireThatOriginalUriIsRetained() {
- MyTimer timer = new MyTimer();
- timer.currentTime = 69;
-
- TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(timer);
- driver.activateContainer(driver.newContainerBuilder());
- Request request = new Request(driver, URI.create("http://foo/bar"));
- assertEquals("http://foo/bar", request.getUri().toString());
- assertEquals("http://foo/bar", request.getRawUri().toString());
-
- request = new Request(driver, URI.create("http://foo//bar"));
- assertEquals("http://foo/bar", request.getUri().toString());
- assertEquals("http://foo//bar", request.getRawUri().toString());
- }
-
- @Test
public void requireThatCancelWorks() {
MyTimer timer = new MyTimer();
TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi(timer);
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java
index fc6d20c06b8..6a7797c20a7 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java
@@ -115,7 +115,7 @@ public class RestApi extends LoggingRequestHandler {
protected HttpResponse handleInternal(HttpRequest request) {
final RestUri restUri;
try {
- restUri = new RestUri(request.getRawUri());
+ restUri = new RestUri(request.getUri());
} catch (RestApiException e) {
return e.getResponse();
} catch (Exception e2) {
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/RestUriTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/RestUriTest.java
index 6d642c7c57c..b2a8200b4e1 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/RestUriTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/RestUriTest.java
@@ -108,7 +108,7 @@ public class RestUriTest {
@Test
public void testDocIdAsIs() throws Exception {
- RestUri restUri = new RestUri(new URI("/document/v1/test/newsarticle/docid/http://vn.news.yahoo.com/gi-th-ng-t-n-ng-khoa-h-205000458.html"));
+ RestUri restUri = new RestUri(new URI("/document/v1/test/newsarticle/docid/http%3a%2f%2fvn.news.yahoo.com%2fgi-th-ng-t-n-ng-khoa-h-205000458.html").normalize());
assertThat(restUri.getNamespace(), is("test"));
assertThat(restUri.getDocumentType(), is("newsarticle"));
assertThat(restUri.getDocId(), is("http://vn.news.yahoo.com/gi-th-ng-t-n-ng-khoa-h-205000458.html"));