You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2009/02/05 15:54:21 UTC
svn commit: r741116 - in
/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole:
AbstractWebConsolePlugin.java internal/compendium/ConfigManager.java
Author: cziegeler
Date: Thu Feb 5 14:54:21 2009
New Revision: 741116
URL: http://svn.apache.org/viewvc?rev=741116&view=rev
Log:
FELIX-918 : Add utility method for making relative redirects absolute.
Modified:
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
Modified: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java?rev=741116&r1=741115&r2=741116&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java (original)
+++ felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/AbstractWebConsolePlugin.java Thu Feb 5 14:54:21 2009
@@ -300,4 +300,31 @@
// no valid string parameter, fail
return null;
}
+
+ /**
+ * Utility method to handle relative redirects.
+ * Some app servers like web sphere handle relative redirects differently
+ * therefore we should make an absolute url before invoking send redirect.
+ */
+ protected void sendRedirect(final HttpServletRequest request,
+ final HttpServletResponse response,
+ String redirectUrl) throws IOException {
+ // check for relative url
+ if ( !redirectUrl.startsWith("/") ) {
+ String base = request.getContextPath() + request.getServletPath() + request.getPathInfo();
+ int i = base.lastIndexOf('/');
+ if (i > -1) {
+ base = base.substring(0, i);
+ } else {
+ i = base.indexOf(':');
+ base = (i > -1) ? base.substring(i + 1, base.length()) : "";
+ }
+ if (!base.startsWith("/")) {
+ base = '/' + base;
+ }
+ redirectUrl = base + '/' + redirectUrl;
+
+ }
+ response.sendRedirect(redirectUrl);
+ }
}
Modified: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java?rev=741116&r1=741115&r2=741116&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java (original)
+++ felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/compendium/ConfigManager.java Thu Feb 5 14:54:21 2009
@@ -106,7 +106,7 @@
redirect += "?" + PID_FILTER + "=" + pidFilter;
}
- response.sendRedirect( redirect );
+ this.sendRedirect(request, response, redirect);
}
return;