The “window.getURL()” returns the full address to the application as the Vaadin app knows it. Originally it is constructed from the request.
On some app servers it is possible to configure the servlet container to use various X-Forwarded headers instead of the raw request urls. You could check if that is possible on you app server. An other option is to override either getApplicationUrl(HttpServletRequest request) in the Vaadin servlet or getUrl() in you application.
Thank you for reply. Should ProxyPassReverse be able to fix this or is the url somehow encoded when transmitted from application server to browser so that the reverse proxy can not touch it?
I’d be surprised if proxypassreverse alone could fix this. AFAIK it just modifies http headers. The url in Window.open() call is transferred in Vaadin UIDL communication (in http payload), which is not filtered.
I’m not sure if I got you question right, but I can make a sophisticated guess that no standard proxy modifies the UIDL communication Vaadin uses. Only the “host page” can be rewritten by proxy to fix broken links.