You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2012/11/13 13:36:36 UTC

svn commit: r1408702 - in /cxf/trunk/rt/frontend/jaxrs/src: main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java

Author: sergeyb
Date: Tue Nov 13 12:36:35 2012
New Revision: 1408702

URL: http://svn.apache.org/viewvc?rev=1408702&view=rev
Log:
[CXF-4631] Using HttpServletRequest.getServerPort to build the absolute URI, thanks to Jakub Bocheński

Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java?rev=1408702&r1=1408701&r2=1408702&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/HttpUtils.java Tue Nov 13 12:36:35 2012
@@ -271,11 +271,13 @@ public final class HttpUtils {
         boolean absolute = u.isAbsolute();
         if (request != null && (!absolute || u.toString().contains(ANY_IP_ADDRESS_START))) {
             String serverAndPort = request.getServerName();
+            boolean localAddressUsed = false;
             if (absolute && ANY_IP_ADDRESS.equals(serverAndPort)) {
                 serverAndPort = request.getLocalAddr();
+                localAddressUsed = true;
             }
                 
-            int port = request.getLocalPort();
+            int port = localAddressUsed ? request.getLocalPort() : request.getServerPort();
             if (port != DEFAULT_HTTP_PORT) {
                 serverAndPort += ":" + port;
             }

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java?rev=1408702&r1=1408701&r2=1408702&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java Tue Nov 13 12:36:35 2012
@@ -171,7 +171,7 @@ public class HttpUtilsTest extends Asser
         EasyMock.expectLastCall().andReturn("http");
         req.getServerName();
         EasyMock.expectLastCall().andReturn("localhost");
-        req.getLocalPort();
+        req.getServerPort();
         EasyMock.expectLastCall().andReturn(8080);
         EasyMock.replay(req);
         URI u = HttpUtils.toAbsoluteUri(URI.create("http://0.0.0.0/bar/foo"), m);
@@ -187,7 +187,7 @@ public class HttpUtilsTest extends Asser
         EasyMock.expectLastCall().andReturn("http");
         req.getServerName();
         EasyMock.expectLastCall().andReturn("localhost");
-        req.getLocalPort();
+        req.getServerPort();
         EasyMock.expectLastCall().andReturn(8080);
         EasyMock.replay(req);
         URI u = HttpUtils.toAbsoluteUri(URI.create("http://0.0.0.0:8080/bar/foo"), m);