0

サーブレットフィルターに証明書認証を実装しています。を使用してクライアント証明書を取得しますhttpRequest.getAttribute("javax.servlet.request.X509Certificate")API。ユーザーがブラウザーを起動して初めて Web サーバーにアクセスすると、基盤となる SSL がクライアント証明書を要求し、ブラウザーは証明書の選択を求めます。ただし、ユーザーがログアウトして HTTP セッションを無効にした後、ユーザーがブラウザーを閉じて Web サーバーに戻っていない場合、基盤となる SSL はブラウザーに証明書の選択を再度求めるプロンプトをトリガーしません。これは、ユーザーが HTTP 層で Web サーバーからログアウトした後、SSL セッションが切断されなかったためだと思います。私の質問は、サーブレットから基になる SSL セッションを無効にする方法があるということですか? より一般的な質問ですが、ユーザーが Web サーバーからログアウトした後、ブラウザーに証明書の選択を再度要求するにはどうすればよいですか?

ありがとう、ギャング

4

1 に答える 1

0

私の質問は、サーブレットから基になる SSL セッションを無効にする方法があるということですか?

Tomcat バルブを作成する必要があり、おそらく一部の Tomcat ソース コードも変更する必要があります。Tomcat の HTTPS/認証ソース コードの奥深くまで何層も調べましたが、SSLSession を提供するフックは見たことがありません。

より一般的な質問ですが、ユーザーが Web サーバーからログアウトした後、ブラウザーに証明書の選択を再度要求するにはどうすればよいですか?

SSL セッションを無効にすると、それができる場合でも、その効果がある場合とない場合があります。ブラウザ固有のものだと思います。

于 2013-06-05T23:50:37.700 に答える