0

SSLセッションを作成しました。タイムアウト値を超えるたびにセッションを無効にしたい。私の質問は、セッションページを無効にするためにセッション時間をチェックするための別のコードを追加する必要がありますか、それともこの関数がこれを自動的に処理しますか?

socket.startHandshake();
sess= socket.getSession()
socket.setSessionTimeout(120);

セッションタイムアウトを設定するには

setsessiontimeout()

サーブレットコンテナがこのセッションを無効にするまでのクライアント要求間の時間を秒単位で指定します。

4

1 に答える 1

0

SSL セッションまたはそのタイムアウトが実際に何であるかを知っているとは思えません。JSESSIONID によって識別されるサーブレット セッションについて本当に話していると思います。そのタイムアウト値は web.xml で構成されます。サーブレット コンテナは、タイムアウトになるとセッションを自動的に無効にします。

SSL セッションは、同じ 2 つのピア間で複数の接続が発生する場合のハンドシェイク オーバーヘッドを削減するために使用されます。SSL セッションにタイムアウトを設定すると、タイムアウト後に有効期限が切れますが、これは、クライアントが次に接続するときに完全なハンドシェイクで新しい SSL セッションを作成する必要があることを意味します (新しい接続は期限切れのセッションに参加できないため)。たとえば、既存の接続が無効になったり、Web アプリケーションからログアウトされたりするわけではありません。

一方、あなたの質問が本当にSSLSessionContext.setSessionTimeout()、(a) はい、Javadoc にあるように SSL セッションのタイムアウトを設定し、(b) 同じことをするために JSSE の他の方法について質問している理由がわかりませんもの。

于 2012-04-23T04:45:05.450 に答える