web-dev-qa-db-ja.com

JBoss EAP7でHttpヘッダーを設定する

JBoss EAP 7がクライアントに送信するHttpヘッダーを設定する標準的な方法があるかどうか知っていますか?私は主に次のものを構成できることに興味があります:

  • X-XSS-保護
  • Xフレーム-オプション
  • Strict-Transport-Security
  • コンテンツ-セキュリティ-ポリシー
  • X-Content-Type-Options

私はインターネットでこのリンクを見つけました

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

しかし、興味のあるヘッダーに使用できるかどうかはわかりません。

ありがとうございました!

5
Alex Mi

JBoss EAP 7のドキュメントによると:

JBossEAPがサポートするバルブの以前のリリース。バルブは、サーブレットがリクエストに変更を加えたり、追加の処理を実行したりする前に、アプリケーションのリクエスト処理パイプラインに挿入されるカスタムクラスです。グローバルバルブは、デプロイされたすべてのアプリケーションのリクエスト処理パイプラインに挿入されます。オーセンティケーターバルブは、リクエストの資格情報を認証します。バルブは、org.Apache.catalina.valves.ValveBaseクラスを拡張することによって作成され、jboss-web.xml記述子ファイルの要素で設定されました。

JBoss EAP7のJBossWebを置き換えるUndertowは、バルブをサポートしていません。ただし、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>

ヘッダーに配置する値を決定するのは他のすべての人に任せます(コピー/貼り付け中に編集を保存します)

10
JGlass

Jboss EAP 7のリンクを見てください: フィルターの設定

standalone.xmlをJBossEAP 7ディレクトリで開き、このxmlで「urn:jboss:domain: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"/>
  <!--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>
1
zichen.L