Thank you Ben, you are absolutely right.

In production, our AWS ALB (application load balancer) terminates HTTPS but 
automatically adds the X-Forwarded-Proto header, which forwards “https” or 
whatever the protocol was, and Wildfly respects it if you make the 
configuration changes described here: 
https://wjw465150.gitbooks.io/keycloak-documentation/content/server_installation/topics/clustering/load-balancer.html
 . Redirects of relative URLs now get turned into absolute URLs with “https” as 
the protocol.

For my dev environment I use Jetty, often behind nginx with nginx terminating 
HTTPS. I’ll pass on the solution for that when I find one.

> On 19 Dec 2021, at 4:35 pm, Ben Weidig <b...@netzgut.net> wrote:
> 
> Hi Geoff,
> 
> I can't reproduce the behavior in our setup, redirecting with relative URLs
> while HTTPS works fine.
> 
> Which Servlet Container are you using?
> AFAIK it's the responsibility of the container to do the right thing and
> how to handle relative URLs from sendRedirect.
> 
> What's in the "Location" header of the response?
> Still a relative URL, or already the HTTP version?
> 
> Cheers,
> Ben
> 
> 
> On Sun, Dec 19, 2021 at 5:59 AM JumpStart <
> geoff.callender.jumpst...@gmail.com> wrote:
> 
>> I forgot to mention that HTTPS terminates at the load balancer. The app
>> server sees just AJP or HTTP.
>> 
>>> On 19 Dec 2021, at 12:10 pm, JumpStart <
>> geoff.callender.jumpst...@gmail.com> wrote:
>>> 
>>> Hi all,
>>> 
>>> At long last I’ve moved redirection of HTTP to HTTPS from the app to the
>> infrastructure, and set tapestry.secure-enabled <
>> https://tapestry.apache.org/configuration.html>=false as recommended in
>> https://tapestry.apache.org/https.html <
>> https://tapestry.apache.org/https.html> . But now I’m hitting an age-old
>> issue: page links are returning absolute URIs with “http” protocol. For
>> example:
>>> 
>>>                      Link pageDeniedLink =
>> pageRenderLinkSource.createPageRenderLinkWithContext(PageDenied.class,
>>>                                      parameters.getLogicalPageName());
>>>                      response.sendRedirect(pageDeniedLink);
>>>                      break;
>>> 
>>> pageDeniedLink is a relative address, but it seems to be converted to an
>> absolute address with “http://“ by the time it gets back to the browser.
>>> 
>>> This appears to have been an issue for a long time, but must have been
>> solved, so is there a config change I need to make?
>>> 
>>> From
>> https://users.tapestry.apache.narkive.com/dapo2zzk/url-writing-problem-with-production-mode-true
>> <
>> https://users.tapestry.apache.narkive.com/dapo2zzk/url-writing-problem-with-production-mode-true>
>> :
>>> 
>>> "To be clear, it's not an HTTP/HTTPS problem I encountered, it was a
>>> relative/absolute URL problem. With it off, the URLs were relative and
>>> happy under HTTPS, with it on, the URLs were then set to absolute and
>>> used HTTP.”
>>> 
>>> Cheers,
>>> 
>>> Geoff
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to