You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/06/15 10:54:04 UTC

[2/2] git commit: WICKET-4588 non-relative redirects do not work properly

WICKET-4588 non-relative redirects do not work properly


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/5f55334a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5f55334a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5f55334a

Branch: refs/heads/wicket-1.5.x
Commit: 5f55334a9703e57c4656dd59cc5a0313f2e0924b
Parents: 2a6a288
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri Jun 15 11:52:53 2012 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri Jun 15 11:52:53 2012 +0300

----------------------------------------------------------------------
 .../java/org/apache/wicket/ajax/wicket-ajax.js     |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/5f55334a/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js b/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
index 0bfa3fc..caf3c3b 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
@@ -992,14 +992,17 @@ Wicket.Ajax.Request.prototype = {
 				// the redirect header was set, go to new url
 				if (typeof(redirectUrl) != "undefined" && redirectUrl != null && redirectUrl != "") {
 					t.onreadystatechange = Wicket.emptyFunction;
-					
+
 					// In case the page isn't really redirected. For example say the redirect is to an octet-stream.
 					// A file download popup will appear but the page in the browser won't change.					
 					this.done();
 					this.successHandler();
-					
+
+					var rhttp  = /^http:\/\//,  // checks whether the string starts with http://
+					    rhttps = /^https:\/\//; // checks whether the string starts with https://
+
                     // support/check for non-relative redirectUrl like as provided and needed in a portlet context
-					if (redirectUrl.charAt(0)==('/')||redirectUrl.match("^http://")=="http://"||redirectUrl.match("^https://")=="https://") {
+					if (redirectUrl.charAt(0)==('/') || rhttp.test(redirectUrl) || rhttps.test(redirectUrl)) {
 					    window.location = redirectUrl;
 					}
 					else {