You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2012/09/26 21:27:42 UTC

svn commit: r1390692 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java

Author: lukaszlenart
Date: Wed Sep 26 19:27:41 2012
New Revision: 1390692

URL: http://svn.apache.org/viewvc?rev=1390692&view=rev
Log:
WW-3879 Changes logic when the location is path and when full url address

Modified:
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java
    struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java?rev=1390692&r1=1390691&r2=1390692&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ServletRedirectResult.java Wed Sep 26 19:27:41 2012
@@ -250,11 +250,13 @@ public class ServletRedirectResult exten
 
     }
 
-    private static boolean isPathUrl(String url) {
+    private boolean isPathUrl(String url) {
         // filter out "http:", "https:", "mailto:", "file:", "ftp:"
-        // since the only valid places for : in URL's is before the path specification
-        // either before the port, or after the protocol
-        return (url.indexOf(':') == -1);
+        return !url.startsWith("http:")
+                && !url.startsWith("https:")
+                && !url.startsWith("mailto:")
+                && !url.startsWith("file:")
+                && !url.startsWith("ftp:");
     }
 
     /**

Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java?rev=1390692&r1=1390691&r2=1390692&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java Wed Sep 26 19:27:41 2012
@@ -79,6 +79,20 @@ public class ServletRedirectResultTest e
         }
     }
 
+    public void testFullUrlRedirect() {
+        view.setLocation("http://localhost/bar/foo.jsp");
+        responseMock.expect("sendRedirect", C.args(C.eq("http://localhost/bar/foo.jsp")));
+
+        try {
+            view.execute(ai);
+            requestMock.verify();
+            responseMock.verify();
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+
     public void testAbsoluteRedirect303() {
         view.setLocation("/bar/foo.jsp");
         view.setStatusCode(303);