Sylvain Wallez wrote:


You're right: a working getServerName() is actually needed as soon as we want to switch protocols. But that only happens on sites mixing http and https for urls served by Cocoon, which isn't always the case.

You'd be surprised how often you need this! Obviously, you need it for something like the petstore where you place an order, but you need it for almost any form that has data that might be considered "sensitive", i.e. it has account numbers, social security numbers, passwords, etc. In fact, the login page really should be secure but then you want to switch to http for the majority of a site.

Sorry: what do you mean by "current protocol" and "protocol request"? I guess it's "the protocol of the current request" and "the protocol asked for by the caller of getLinkURI()"?

That should be something like:
 String proto;
 if (secure == null) {
     proto = request.scheme();
 } else {
     proto = secure.booleanValue() ? "https" : "http";
 }

 if (proto.equals(request.getScheme()) {
     // same scheme: do not absolutize
 } else {
     // different scheme: absolutize
 }

This actually filters more cases where absolutizing will effectively happen, which I like :-)

Sylvain

Yes, this looks like what is needed.

Ralph

Reply via email to