У меня возникла острая необходимость извлечь порт Tomcat из запроса. Так что я могу сравнить и сказать, если запрос сервлета от порта tomcat http://localhost:8080
или от порта Apache http://localhost/
Делая это, я могу убедиться, что запрос обрабатывается только при строгом использовании порта tomcat и отклонении через порт apache. Это может помочь настроить конфигурацию безопасности, чтобы запрос не разрешал доступ из внешнего мира через apache. Порт Tomcat доступен только в локальной сети.
Метод заключается в том, чтобы создать клапан для кота (если вы знаете, что это такое), реализующий org.apache.catalina.valves.ValveBase.
Этот интерфейс предоставляет org.apache.catalina.connector.Request в качестве аргумента.
По запросу:
using request.getConnector().getPort() which returns 8080. Then say.
if ( request.getServerPort() != request.getConnector().getPort() ) {
response.getWriter().print("<span>access denied</span>");
} else {
getNext().invoke(request, response);
}