jait-purohit / tamacat

Automatically exported from code.google.com/p/tamacat
0 stars 0 forks source link

Fault correction by which a scheme and authrity are contained in the path of reverse request URL. #4

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
When Use reverse proxy (ReverseProxyHandler),
the backend web server's request path contains scheme and authrity.

Ex) look up the apache's access log.
 GET http://localhost:8080/test/index.do?id=12345&key=value HTTP/1.1

To be exact:
 GET /test/index.do?id=12345&key=value HTTP/1.1
 (A scheme and authority do not contain.)

Original issue reported on code.google.com by tamacat.org on 21 Jan 2013 at 12:35

GoogleCodeExporter commented 8 years ago
Index: 
src/test/java/org/tamacat/httpd/core/ReverseHttpEntityEnclosingRequestTest.java
===================================================================
--- 
src/test/java/org/tamacat/httpd/core/ReverseHttpEntityEnclosingRequestTest.java 
(revision 621)
+++ 
src/test/java/org/tamacat/httpd/core/ReverseHttpEntityEnclosingRequestTest.java 
(revision 622)
@@ -57,13 +57,26 @@
    public void testReverseHttpRequest() throws Exception {
        ReverseHttpEntityEnclosingRequest request =
            new ReverseHttpEntityEnclosingRequest(
-                   new BasicHttpRequest("GET","/test2/test.jsp"),
+                   new BasicHttpRequest("POST","/test2/test.jsp"),
+                   new BasicHttpContext(),
+                   reverseUrl);
+       request.setEntity(new StringEntity("test"));
+       
+       assertNotNull(request.getAllHeaders());
+       assertEquals("/test/test.jsp", request.getRequestLine().getUri());
+   }
+   
+   @Test
+   public void testReverseHttpRequest2() throws Exception {
+       ReverseHttpEntityEnclosingRequest request =
+           new ReverseHttpEntityEnclosingRequest(
+                   new BasicHttpRequest("POST","/test2/test.jsp?id=123&key=value"),
                    new BasicHttpContext(),
                    reverseUrl);
        request.setEntity(new StringEntity("test"));

        assertNotNull(request.getAllHeaders());
-       assertEquals("http://localhost:8080/test/test.jsp", 
request.getRequestLine().getUri());
+       assertEquals("/test/test.jsp?id=123&key=value", 
request.getRequestLine().getUri());
    }

 // @Test
Index: src/test/java/org/tamacat/httpd/core/ReverseHttpRequestTest.java
===================================================================
--- src/test/java/org/tamacat/httpd/core/ReverseHttpRequestTest.java    (revision 
621)
+++ src/test/java/org/tamacat/httpd/core/ReverseHttpRequestTest.java    (revision 
622)
@@ -58,7 +58,19 @@
                    reverseUrl);

        assertNotNull(request.getAllHeaders());
-       assertEquals("http://localhost:8080/test/test.jsp", 
request.getRequestLine().getUri());
+       assertEquals("/test/test.jsp", request.getRequestLine().getUri());
+   }
+   
+   @Test
+   public void testReverseHttpRequest2() throws CloneNotSupportedException {
+       ReverseHttpRequest request =
+           new ReverseHttpRequest(
+                   new BasicHttpRequest("GET","/test2/test.jsp?id=123&key=value"),
+                   new BasicHttpContext(),
+                   reverseUrl);
+       
+       assertNotNull(request.getAllHeaders());
+       assertEquals("/test/test.jsp?id=123&key=value", 
request.getRequestLine().getUri());
    }

 // @Test
Index: src/main/java/org/tamacat/httpd/core/ReverseHttpRequest.java
===================================================================
--- src/main/java/org/tamacat/httpd/core/ReverseHttpRequest.java    (revision 621)
+++ src/main/java/org/tamacat/httpd/core/ReverseHttpRequest.java    (revision 622)
@@ -51,7 +51,7 @@
    public ReverseHttpRequest(HttpRequest request, HttpContext context, ReverseUrl reverseUrl) {
        super(new BasicRequestLine(
                request.getRequestLine().getMethod(),
-               reverseUrl.getReverseUrl(request.getRequestLine().getUri()).toString(),
+               reverseUrl.getReverseUrl(request.getRequestLine().getUri()).getFile(),
                request.getRequestLine().getProtocolVersion())
        );
        URL url = reverseUrl.getReverseUrl(request.getRequestLine().getUri());

Original comment by tamacat.org on 21 Jan 2013 at 1:11