Настройка заголовков Http в JBoss EAP 7

Знаете ли вы, есть ли стандартный способ настройки заголовков Http, которые JBoss EAP 7 отправляет клиенту? В основном меня интересует возможность настроить следующие:

  • X-XSS-Protection
  • X-Frame-Options
  • Строгий-Transport-Security
  • Content-Security-Policy
  • X-Content-Type-Options

Я нашел эту ссылку в интернете

https://blog.akquinet.de/2017/08/03/wildfly-8-10-and-jboss-eap-7-verbose-http-headers/

но я не уверен, смогу ли я использовать его для интересующих меня заголовков.

Спасибо!

1 ответ

Решение

Согласно документации JBoss EAP 7:

Предыдущие выпуски клапанов с поддержкой JBoss EAP. Клапаны - это пользовательские классы, вставленные в конвейер обработки запросов для приложения перед фильтрами сервлетов, чтобы внести изменения в запрос или выполнить дополнительную обработку. Глобальные клапаны вставляются в конвейер обработки запросов всех развернутых приложений. Клапаны аутентификатора аутентифицируют учетные данные запроса. Клапаны были созданы путем расширения класса org.apache.catalina.valves.ValveBase и настроены в элементе файла дескриптора jboss-web.xml.

Undertow, который заменяет JBoss Web в JBoss EAP 7, не поддерживает клапаны; однако вы должны быть в состоянии достичь аналогичной функциональности, используя обработчики Undertow. Undertow включает в себя ряд встроенных обработчиков, которые предоставляют общие функциональные возможности. Он также предоставляет возможность создавать собственные обработчики, которые можно использовать для замены пользовательских функций клапана.

Вы по-прежнему можете пойти по этому пути в сложных ситуациях, однако теперь при использовании заголовков ответа добавления Undertow было упрощено, так как вы можете просто добавить пользовательские заголовки в подсистему JBoss Undertow, раздел "Фильтры" изменится следующим образом:

<filters>
    <response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
    <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>


К этому:

<filters>
    <response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
    <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
    <!-- Begin custom Headers -->
    <response-header name="x-xss-protection" header-name="X-XSS-Protection" header-value=""/>
    <response-header name="x-frame-options" header-name="X-Frame-Options" header-value=""/>
    <response-header name="strict-transport-security" header-name="Strict-Transport-Security" header-value=""/>
    <response-header name="content-security-policy" header-name="Content-Security-Policy" header-value=""/>
    <response-header name="x-Content-type-options" header-name="X-Content-Type-Options" header-value=""/>
</filters>

Я оставлю это на усмотрение всех остальных, чтобы определить значения, которые они хотели бы разместить для заголовков (сохраните некоторые изменения во время копирования / вставки)

Посмотрите ссылку Jboss EAP 7: Настройка фильтров

Открыть свой standalone.xmlв каталоге JBoss EAP 7 и выполните поиск " urn:jboss:domain:undertow " в этом xml, затем добавьте свои собственные правила фильтрации, например:

<filters>
  <response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
  <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
  <!--your custom rules in detail-->
  <response-header name="x-frame-options" header-name="X-Frame-Options" header-value=""/>
</filters>

Не забудьте добавить <filter-ref name="x-frame-options"/> в

<subsystem xmlns="urn:jboss:domain:undertow:4.0">
<host name="default-host" alias="localhost">
                <location name="/" handler="welcome-content"/>
                <filter-ref name="server-header"/>
                <filter-ref name="x-powered-by-header"/>
                <!--declare your custom rules here-->
                <filter-ref name="x-frame-options"/>
                <single-sign-on http-only="true" secure="true"/>
                <http-invoker security-realm="ApplicationRealm"/>
 </host>
</subsystem>
Другие вопросы по тегам