Hello there,

one of the elements needed in a WebDAV response for the PROPFIND
method is the href (full URI) of the resource in question. For
example:

<d:href>http://host:port/path/to/the/resource</d:href>

Now, if my Restlet application is 'behind' an URL redirect engine, for
example Apache's mod_rewrite, and the client makes the request to:

http://redirected.uri/path/to/the/resource

using something like:

String hrefs = String.format("%s%s", getHostRef().toString(false,
false), Reference.decode(fragment)); // NOI18N

to compute the text node's value inside <d:href> I get:

<d:href>http://inside.host:port/path/to/the/resource</d:href>

instead of (the expected by the client which doesn't need to know
anything about proxies and redirection):

<d:href>http://redirected.uri/path/to/the/resource</d:href>

So, I was wondering if getting the HTTP standard "Via" header's first
value (ex: Via: 1.1 redirected.uri 1.1 internal.first.host 1.1
inside.host:port) to build the URI's value is the right thing to do to
get http://redirected.uri/path/to/the/resource, and if restlet has a
mapped method to get the Via header's value, or I'll have to use the
getRequest().getAttributes().get("org.restlet.http.headers") method
and some String manipulation magic to get the 1st value.

I hope to have been clear enough, thanks in advance for your prompt
and accurate answer.

-- 
Fabián Mandelbaum
IS Engineer

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2450446

Reply via email to