私の Web アプリケーションは共有サーバー (Websphere) で実行されます。現在、私のアプリケーションは HTTP と HTTPS の両方の要求に対して実行されます。通常、アプリケーションを実行すると、 https://localhost:9443/index.jspのように表示されます。ユーザーが https を http に変更してリクエストを送信しようとすると、サーバーはリクエストを受け入れます。このシナリオを回避し、アプリケーション レベルで https 要求のみをサポートするようにアプリケーションを作成する必要があります。親切に誰か助けてください。
3 に答える
<security-constraint>
<web-resource-collection>
<web-resource-name>https</web-resource-name>
<description>No Description</description>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<description>No Description</description>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
user-data-constraint
上記を web.xml に追加します。http
すべてのリクエストをにリダイレクトしhttps
ます。
WebSphere管理コンソールでグローバル・セキュリティーとアプリケーション・セキュリティーの両方が使用可能になっていることを確認してください。
ユーザーの非 https 接続を拒否する別の方法は、単純に http トランスポート チェーンを削除することです。[アプリケーション サーバー] > [サーバー] > [Web コンテナー トランスポート チェーン] に移動し、[WCInboundDefault] を選択して [削除] をクリックします。これで、SSL ポートでリッスンする WCInboundDefaultSecure トランスポート チェーンだけが残ります。
同様に効果的な別の代替手段は、Virtual Hosts > default_host > Host Aliases で非 https ポートのホスト エイリアスを削除することです。
制限よりもリダイレクトを好む場合は、Web サーバーやロード バランサーなどのアプリケーション サーバーにアクセスする前にリダイレクトすることをお勧めします。WAS の前に Apache HTTP サーバーまたは IBM HTTP サーバーを使用している場合は、mod_rewrite でリダイレクトを管理できます。