You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by dg...@apache.org on 2003/02/05 06:30:13 UTC
cvs commit: jakarta-struts/src/share/org/apache/struts/action RequestProcessor.java
dgraham 2003/02/04 21:30:13
Modified: src/share/org/apache/struts/action RequestProcessor.java
Log:
Fix absolute uri forwarding and redirecting for PR# 11021
Revision Changes Path
1.25 +24 -9 jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java
Index: RequestProcessor.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- RequestProcessor.java 30 Jan 2003 17:58:13 -0000 1.24
+++ RequestProcessor.java 5 Feb 2003 05:30:13 -0000 1.25
@@ -406,7 +406,7 @@
/**
* Forward or redirect to the specified destination, by the specified
* mechanism.
- * This method uses the 1.1b2 ForwardConfig object. It should be used in
+ * This method uses the ForwardConfig object. It should be used in
* place of processActionForward(...).
*
* @param request The servlet request we are processing
@@ -424,14 +424,29 @@
if (forward == null) {
return;
}
+
if (log.isDebugEnabled()) {
log.debug("processForwardConfig(" + forward + ")");
}
-
- String uri = RequestUtils.forwardURL(request, forward);
+
+ String forwardPath = forward.getPath();
+ String uri = null;
+
+ // paths not starting with / should be passed through without any processing
+ // (ie. they're absolute)
+ if (forwardPath.startsWith("/")) {
+ uri = RequestUtils.forwardURL(request, forward); // get module relative uri
+ } else {
+ uri = forwardPath;
+ }
+
if (forward.getRedirect()) {
- response.sendRedirect
- (response.encodeRedirectURL(request.getContextPath() + uri));
+ // only prepend context path for relative uri
+ if (uri.startsWith("/")) {
+ uri = request.getContextPath() + uri;
+ }
+ response.sendRedirect(response.encodeRedirectURL(uri));
+
} else {
doForward(uri, request, response);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-dev-help@jakarta.apache.org