Заголовок x-forwarded-for, не переданный AWS Application Load Balancer

Мое приложение tomcat не получает заголовок X-Forwarded-For от балансировщика нагрузки приложений AWS. Балансировщик нагрузки настроен на разгрузку SSL и подключается к приложению tomcat через HTTP. Я получаю другие заголовки, такие как x-forwarded-proto, x-forwarded-port, x-amzn-trace-id. Я пытаюсь найти IP-адрес клиента, но теперь застрял на нем. Я также проверил все заголовки, которые я получаю, чтобы узнать IP-адрес клиента, но его просто нет. Кто-нибудь может мне помочь, пожалуйста!


person Jaya    schedule 06.01.2018    source источник


Ответы (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
comment
Это правильный ответ. X-Forwarded-For передается балансировщиками нагрузки AWS, и его необходимо настроить в Tomcat для дальнейшего использования. - person Tom Harrison; 07.01.2018
comment
Спасибо Ануруддхе и Тому за быстрый ответ. Это сработало отлично. - person Jaya; 07.01.2018
comment
Ануруддха, наивный вопрос. Зачем нужна эта конфигурация. Tomcat не отправляет заголовок x-forwarded-for в код приложения без этого фильтра? - person Akashdeep Saluja; 19.02.2018
comment
При чем тут фильтр Tomcat? Заголовок "съедает" что ли? - person Chloe; 24.09.2019