Мое приложение tomcat не получает заголовок X-Forwarded-For от балансировщика нагрузки приложений AWS. Балансировщик нагрузки настроен на разгрузку SSL и подключается к приложению tomcat через HTTP. Я получаю другие заголовки, такие как x-forwarded-proto, x-forwarded-port, x-amzn-trace-id. Я пытаюсь найти IP-адрес клиента, но теперь застрял на нем. Я также проверил все заголовки, которые я получаю, чтобы узнать IP-адрес клиента, но его просто нет. Кто-нибудь может мне помочь, пожалуйста!
Заголовок x-forwarded-for, не переданный AWS Application Load Balancer
Ответы (1)
Это может быть связано с конфигурациями tomcat. Проверьте, есть ли у вас следующие конфигурации в tomcat для обработки заголовков X-Forwarded-For
и X-Forwarded-proto
<filter>
<filter-name>RemoteIpFilter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
<init-param>
<param-name>protocolHeader</param-name>
<param-value>x-forwarded-proto</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RemoteIpFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Вот ссылка на конфигурацию: https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Basic_configuration_to_handle_ 'x-forwarded-for' и 'x-forwarded-proto'
Вы можете найти файл конфигурации либо в $CATALINA_BASE/conf/web.xml
, либо в WEB-INF / web.xml приложения.
Tomcat предоставляет ряд фильтров, которые можно настроить для использования со всеми веб-приложениями, используя $ CATALINA_BASE / conf / web.xml, или можно настроить для отдельных веб-приложений, настроив их в файле WEB-INF / web.xml приложения.
person
Anuruddha
schedule
06.01.2018
Это правильный ответ.
X-Forwarded-For
передается балансировщиками нагрузки AWS, и его необходимо настроить в Tomcat для дальнейшего использования.
- person Tom Harrison; 07.01.2018
Спасибо Ануруддхе и Тому за быстрый ответ. Это сработало отлично.
- person Jaya; 07.01.2018
Ануруддха, наивный вопрос. Зачем нужна эта конфигурация. Tomcat не отправляет заголовок
x-forwarded-for
в код приложения без этого фильтра?
- person Akashdeep Saluja; 19.02.2018
При чем тут фильтр Tomcat? Заголовок "съедает" что ли?
- person Chloe; 24.09.2019