Ad

Getting The IP Address In Vaadin Behind An Apache/tomcat Setup (mod_jk) Always Gives The Server's IP Address

- 1 answer

Using the recommend Vaadin code to get an IP address in a setup with apache on the front and tomcat behind using mod_jk always results in getting the Server's IP address:

Page.getCurrent().getWebBrowser().getAddress();

I caught this snippet which explains it's because the connection is coming from Apache, which makes sense, but that solution doesn't work either.

Therefore my question is how do I get the actual user's IP address in Vaadin 8 when the tomcat server is behind apache using mod_jk?

Ad

Answer

String header = VaadinService.getCurrentRequest().getHeader("x-forwarded-for");
if(header == null || "".equals(header)
    return "";
return InetAddress.getByName(header).getHostAddress();

It's best to do an empty String check just in case to avoid any NullPointerException issues.

Ad
source: stackoverflow.com
Ad