RemoteIpValve должен делать все, что вам нужно.
Исходный код из JBossWeb 7.5.20 (EAP 6.4.20): http://anonsvn.jboss.org/repos/jbossweb/tags/JBOSSWEB_7_5_20_FINAL/src/main/java/org/apache/catalina/valves/RemoteIpValve.java
Вот более читаемая документацияна вышестоящем веб-сайте проекта Apache Tomcat 7.0: https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html
Минимальная конфигурация в вашем случае будет следующей глобальной конфигурацией клапана в веб-подсистеме:
<valve name="remoteip-valve" module="org.jboss.as.web" class-name="org.apache.catalina.valves.RemoteIpValve">
<param param-name="protocolHeader" param-value="X-Forwarded-Proto"/>
</valve>
Это установит схемуоснованный на значении заголовка X-Forwarded-Proto.Для https он также установит для флага безопасности значение true, а для порта - 443. Поскольку вам, кажется, требуется, чтобы порт HTTPS был установлен на 9443, вы можете сделать это с помощью дополнительного параметра httpsServerPort (и я думаю, что вы 'Вам также потребуется установить httpServerPort на 9090, как вы упомянули выше, потому что RemoteIpValve переопределит его на 80 в противном случае), например
<valve name="remoteip-valve" module="org.jboss.as.web" class-name="org.apache.catalina.valves.RemoteIpValve">
<param param-name="protocolHeader" param-value="X-Forwarded-Proto"/>
<param param-name="httpServerPort" param-value="9090"/>
<param param-name="httpsServerPort" param-value="9443"/>
</valve>
И вы можете сделать больше с этим клапаном, если вам нужно, просто проверьтедокументация для получения более подробной информации.
Это также кратко описано, например, здесь (требуется регистрация RH): https://access.redhat.com/solutions/629863
BTW Если вы сможете использовать протокол AJP (от прокси досервер приложений), в этом нет необходимости, поскольку AJP предназначен для этих случаев, и вся необходимая информация должна быть передана в приложение.сервер в значительной степени прозрачно.