2011-08-10 5 views
0

TomcatでデプロイされたWebアプリケーション用の単純なフォームベースのログインを実装しようとしています。 loginPage.htmlのフィールドにはj_usernamej_passwordがあり、指定されたフォームメソッドはです。/Actionsは、私のhtmlとjspファイルとcssとjsファイルのすべてを含むディレクトリであり、すべてのサーブレットのマッピングは/Actions/servletName.doの形式です。アクションにない唯一のページは、index.htmlとloginPageとloginErrorです。HTTPSでフォームベースのログインが失敗し、サーバーに接続できなかったブラウザエラーが発生する

現在、ホームページはindex.htmlです。 Actions/home.htmlへのハイパーリンクがあります。私が望むのは、ハイパーリンクがloginPage.htmlにリダイレクトされてから、ユーザーがログインするとhome.htmlに移動することです。私の理解は、home.htmlは制約されたリソースなので、これは自動的に起こるはずです。しかし、代わりに、私はログインページにリダイレクトされず、ブラウザはページに接続できないというエラーを表示します。上部のURLはhttps://localhost:8443/myProject/Actions/home.htmlhttps://localhost:8443/myProject/index.htmlのいずれかです。

私はいくつかのチュートリアルを見てきましたが、ファイルの場所を含む完全な例はどこにもありません。ヘルプは非常に高く評価されます。ああ、誰かが疑問に思っている場合は、tomcat-users.xmlファイルをそれに応じて更新しました。あなたがHTTPSを使用したい時はいつでも

<welcome-file-list> 
    <welcome-file>/index.html</welcome-file> 
</welcome-file-list> 
<security-role><role-name>Admin</role-name></security-role> 
<login-config> 
    <auth-method>FORM</auth-method> 
    <form-login-config> 
     <form-login-page>/loginPage.html</form-login-page> 
     <form-error-page>/loginError.html</form-error-page> 
    </form-login-config> 
</login-config> 
<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>AllResources</web-resource-name> 
     <url-pattern>/Actions/*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>Admin</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 
+0

あなたはどのブラウザを使用していますか? * exact *エラーメッセージとは何ですか? http://は 'index.html'で動作しますか?これは、SSLがあなたのコンテナにまったく設定されていないように思えます。 – BalusC

+0

Chromeを使用して「Google Chromeのローカルホストへの接続試行が拒否されました。ウェブサイトが停止しているか、ネットワークが正しく設定されていない可能性があります。しかし、私はTomcatがSSL用に設定されていると思った。直接/Actions/home.htmlに移動しようとすると、まったく同じエラーが発生します。 – joseph

+0

http:// localhost:8080/myServlet /またはhttp:// localhost:8080/myServlet/index.htmlと入力すると右側のページに移動しますが、上部のURLはhttp:// – joseph

答えて

0

あなたはconfigure Tomcat to use SSL最初にする必要があります。そうでない場合は、<transport-guarantee>CONFIDENTIAL</transport-guarantee>のエントリを削除し、https://の代わりにhttp://を指すようにHTML/JSPファイルのすべてのリンクを修正する必要があります。

+0

ええと、展開先のコンピュータがSSL用に設定されているかどうかはわかりません。また、Confidential保証なしにフォームベースのログインを使用することは安全ではないという印象を受けています。だから私は基本的なものに戻るべきでしょうか? – joseph

+0

コンテナは通常、デフォルトでSSL用に構成されていません。管理者提供の証明書キーストアファイルが必要です。私の答えはHOWTOリンクも参照してください。 HTTP基本認証は、フォームベースの認証よりも安全ではありません。違いは、認証はlook'n'feelのすべてのコントロールを持っているHTMLフォームの代わりに、裸のブラウザに組み込まれたポップアップダイアログによって行われるということだけです。それは本当にセキュリティの違いをもたらすSSLです。すべてのデータは、ネットワークを介して暗号化されて転送されます。 – BalusC

+0

ベーシックではなくbase64で暗号化されていませんが、トランスポートの保証が与えられていないとフォームはまったく暗号化されません。 – joseph

関連する問題