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