File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Struts and the fly likes Redirect behind proxy Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "Redirect behind proxy" Watch "Redirect behind proxy" New topic

Redirect behind proxy

robert isidorson

Joined: Sep 03, 2007
Posts: 19
I try to do a redirect between actions, the application is behind an apache proxy ,that makes it a bit complicated. In myaction:
ActionForward forward= new ActionForward("/");
return forward;

The url that i use through proxy is https://machine:8443/myapp/
So when I make the redirect in my action, i would like to keep that url, but the url change to the application server url: http://appmachine:11704/myapp/myotheraction.

How can i fool struts to keep the proxy url? I don't wan't to do forward action.One solution is to use absolute url, but is there another way?
Chris Boldon
Ranch Hand

Joined: Aug 10, 2006
Posts: 190
<html:base />
robert isidorson

Joined: Sep 03, 2007
Posts: 19
I tried that, but I loose that information when creating a new actionforward in myaction. If i could, i would like to modify the response headers before returning, but i cant do that with ActionForwards.
Grant Harper Prellwitz

Joined: May 13, 2009
Posts: 1
Sorry to resurrect an old thread, but I have a similar issue, and I can't seem to find a resolution. I’ve inherited a Struts 1.1 application, and could use some assistance.

As above, after a user submits a form, the application does a redirect. That is causing the browser to attempt to reach the application server hosting the application (http://appserver:8080/MyApp), not the external Apache 1.3 web server that front-ends it (https://webserver/MyApp).

So for example:
The user logs in and goes through a series of screens. These are traversed using a standard FORWARD, which works fine. The user then fills in a form at https://webserver/MyApp/ObjectiveWizard3.jsp which posts to
/MyApp/, which then REDIRECTS to /MyApp/ This redirect is hard-coded in the application, not in the struts-config.xml.

The problem is that the app server then sends back a “302 Moved Temporarily” response with Location: http://appserver:8080/MyApp/
I tried using <html:base />, but it is inserting a <base> tag referring to appserver, not webserver.
This is despite having in default-web-site.xml:
<frontend host="webserver" port="443" />

The application server is Oracle AS10g (10.1.2), which has an Apache (OHS) instance listening on 8080, connected to a J2EE container on 12053 using AJP 1.3. The external web server is on a Solaris box, and refers to the internal application server by IP, because it isn't even visible on the domain controller or entered into the hosts file. There's a firewall between these two boxes, with the requisite ports opened.

We have the following in the httpd.conf on the external Apache instance:
ProxyPass /MyApp/
ProxyPassReverse /MyApp/
(where is a representation of the internal IP address of the AS10g box and 8080 is the port that the OHS is listening on.)

Previously, it was deployed to an Oracle Containers for J2EE (OC4J) 9.0.4 container on Solaris, front-ended by the same Apache 1.3 on another Solaris box.

I haven't done any Struts work in a few years, and am at a loss here . Any ideas are welcomed!

Grant Prellwitz
Harper College
I agree. Here's the link:
subject: Redirect behind proxy
It's not a secret anymore!