Which proxy are it? apache2 httpd?

Matthew Hanlon wrote:
Hmm.  I on further thought, "Referer" is not the proper header to use.
Something more like this instead:

public String getUrl(MyResource res) {
        PageParameters params = new PageParameters();
        params.put(Constants.MY_RESOURCE, res.getId());

        WebRequestCycle cycle = (WebRequestCycle)RequestCycle.get();
        String urn = cycle.urlFor(MyResponsePage.class, params).toString();
        String host =
cycle.getWebRequest().getHttpServletRequest().getHeader("Host");
        String context =
cycle.getWebRequest().getHttpServletRequest().getContextPath();

        StringBuffer url = new StringBuffer();
        url.append("http://
").append(host).append(context).append("/").append(urn);

        return url.toString();
    }

On Fri, Jun 27, 2008 at 9:58 AM, Matthew Hanlon <[EMAIL PROTECTED]> wrote:

I was having a problem getting the full url of a page or resource after
deploying my application behind a proxy.  I was previously doing the
following:

public String getUrl(MyResource res) {
PageParameters params = new PageParameters();
params.put(Constants.MY_RESOURCE, res.getId());
WebRequestCycle cycle = (WebRequestCycle)RequestCycle.get();
return RequestUtils.toAbsolutePath(cycle.urlFor(MyResponsePage.class,
params).toString());
  }

However, after deploying behind a proxy, I was expecting to get "
http://my.domain.com/MyResourcePage/resouce/xxx"; and instead was getting "
http://localhost:8080/MyResourcePage/resouce/xxx";.  So I adjusted to doing
the following:

  public String getUrl(MyResource res) {
        PageParameters params = new PageParameters();
        params.put(Constants.MY_RESOURCE, res.getId());
        WebRequestCycle cycle = (WebRequestCycle)RequestCycle.get();
        String urn = cycle.urlFor(MyResponsePage.class, params).toString();
        String referer =
cycle.getWebRequest().getHttpServletRequest().getHeader("Referer");
        String context =
cycle.getWebRequest().getHttpServletRequest().getContextPath();
        PrependingStringBuffer url = new PrependingStringBuffer(urn);
        url.prepend(referer.substring(0, referer.indexOf(context) +
context.length() + 1));
        return url.toString();
  }

It's working, but I was curious if anyone had any input or a better method
of accomplishing this.  Thanks!

Regards,
Matthew.

--
Matthew Rollins Hanlon
http://squareoftwo.org
_____________________
Hanlon's Razor:
"Never attribute to malice that which can be adequately explained by
stupidity."
http://wikipedia.org/wiki/Hanlon's_razor<http://wikipedia.org/wiki/Hanlon%27s_razor>





--
-Wicket for love

Nino Martinez Wael
Java Specialist @ Jayway DK
http://www.jayway.dk
+45 2936 7684


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to