2009-08-25 18 views
7

Tomcat 6サーバー上で実行されているサーブレットベースのWebアプリケーションがあります。 URLスキームはHTTPSです。サイト全体が現在HTTPSで提供されています。しかし、私が本当にやってみたいのは、購入やログインといった特定の操作に対してのみHTTPSを設定することです。これを簡単に行うためのTomcatの設定はありますか?サーブレットベースのWebアプリケーションの特定のページにのみHTTPSを使用

HTTPSとHTTPでセッションを維持するために必要なコード変更はありますか?

答えて

11

実際、これはWebアプリケーションのweb.xmlファイルで設定されているのが理想です。セキュアであるべき特定のURLを<security-constraint><web-resource-collection>と指定し、HTTPS要件を<transport-guarantee>と指定し、値をCONFIDENTIALと指定するだけです。コンテナはリダイレクトを透過的に管理します。シンプル。

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>My Secure Stuff</web-resource-name> 
    <url-pattern>/some/secure/stuff/*</url-pattern> 
    <url-pattern>/other/secure/stuff/*</url-pattern> 
    ... 
    </web-resource-collection> 
    <user-data-constraint> 
    <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 
+0

この情報をお寄せいただきありがとうございます。 – Keshav

+0

これを私のweb.xmlに追加しようとしましたが、Tomcatはリダイレクトしません。私は何か間違っているのですか?私はTomcat 5.5.23を使用しています。 – ep4169

+0

私はこのアプリのweb.xmlでこれを試しましたが、Tomcatはリダイレクトしません。何もロードできません。私は何か間違っているのですか? – ep4169

2

HTTPコネクタをセットアップするだけで、すべてのサーブレットがHTTPでも使用できるようになります。 HTTPSを必要とする操作について

、あなたは、このように私たちの場合

if (!request.isSecure()) { 
    response.sendError(HttpServletResponse.SC_FORBIDDEN); 
    return; 
} 

を、この自分自身を強制する必要があり、我々はHTTPSページにユーザーをリダイレクトするように、HTTPのURLがある場合は、ログインURLには、ユーザが入力することもできます入力されました。

サーブレットセッション(JSESSIONID)について言えば、TomcatはCookieに「安全」フラグを追加しないため、HTTPとHTTPSの間でセッションを共有する際に問題はありません。

関連する問題