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?
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.