2012-05-09 21 views
0

私のWebアプリケーションは共有サーバー(Websphere)で動作します。これで、アプリケーションはHTTP要求とHTTPS要求の両方で動作します。通常、アプリケーションを実行すると、次のように表示されます https://localhost:9443/index.jsp。 ユーザーがhttpsをhttpに変更して要求を送信しようとすると、サーバーはその要求を受け入れます。私はこのシナリオを避け、アプリケーションレベルでのhttps要求のみをサポートする必要があります。親切に誰も私を助けます。コード変更なしですべてのHTTP要求をHTTPS要求にリダイレクト

+0

httpをhttpsにチェックしてリダイレクトするJavaサーブレットフィルタを追加できますか? – gigadot

+1

あなたはhttps:// localhost:9443/index.jspを見ることを期待していますか? – artbristol

+0

私はここでフィルタリングの概念を理解したくありません。web.xmlを変更するだけでそれを達成する方法はありますか? – sudhakars10

答えて

1
<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> 

は、あなたのweb.xmlに上記user-data-constraintを追加します。 httpリクエストはすべてhttpsに転送されます。

+0

こんにちはramesh、あなたの簡単な返信をありがとう、ありがとう、私はこれ以前のこの質問を投稿しようとしましたが、上記のはWebsphereで動作しないTomcat Webサーバーで動作しています。 – sudhakars10

+0

http://stackoverflow.com/questions/5067917/websphere-security-constraint-in-web-xml-doesnt-work – gigadot

0

ユーザーが非https接続を拒否する方法は、単純にhttpトランスポートチェーンを削除することです。アプリケーションサーバー>サーバー> Webコンテナトランスポートチェーンに移動し、WCInboundDefaultを選択して削除をクリックします。 SSLポートをリスンするWCInboundDefaultSecureトランスポートチェーンのみが残されています。

別の代替の同等に有効な仮想ホストにあなた以外のHTTPSポートのホスト別名を削除することです>のdefault_host>あなたが制限の上にリダイレクトを好む場合は、このAliases-ホストが少ない残忍な設定変更:)

ように感じて、Iたとえば、Webサーバーやロードバランサなどのアプリケーションサーバーを起動する前に実行することをお勧めします。 WASの前でApache HTTPサーバーまたはIBM HTTP Serverを使用している場合は、mod_rewriteを使用してリダイレクトを管理できます。

+0

貴重なご意見ありがとうございます。 – sudhakars10

0

WebSphere管理コンソールでグローバルセキュリティとアプリケーションセキュリティの両方が有効になっていることを確認します。

関連する問題