Настройка заголовков 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>