セキュリティのためにStripesとApache Shiroライブラリを使用するwebappがあります。同じセッションで新しいスレッドを作成するTomcat
私のローカルWindows Tomcat 6.0.33では、すべて正常に動作します。しかし、私のホストDailyRazorでLinux上のTomcat 6.0.16上でアプリケーションを実行すると、定期的にTomcatが同じユーザー/セッションの新しいスレッドを生成していることがわかります。そのため、ユーザーは資格情報を失い、ログインを求められます再び。
私はJettyの下で動作しているときに私のdevボックスにも気づきました。
webappに与えているヒットがシーケンシャルなので、非アクティブなタイムアウトの問題ではないと思います。Tomcatの設定には、マイナーバージョンとは別のものがあります。
また、(私のURLには表示されないので)セッション情報を簡単にデバッグする方法はありますか?それはコメントしていた場合よりもhttp://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpSessionListener.html
リクエスト処理の途中で新しいスレッドを開始しますか?あるいは、新しいリクエストを処理するために新しいスレッドを開始しますか?後者の場合、それは予想される。 ThreadLocalに資格情報を格納し、セッションで常に同じスレッドを使用することを願っていますか? –
セッションIDを通常どおりログに記録してダンプすることはできますが、同じセッションであることはすでに分かっていると言えますが、どうやってそれを知っていますか?ユーザーのセッションは、任意の数のスレッドにわたって存在する可能性があります。 –
@JBNizetリクエストが受信されたときにロギングしています。これは、同じブラウザウィンドウからのリクエストによって異なる場合があります。私はShiroがThreadLocalに資格情報を格納していると信じています。現在の主題を取得するための静的呼び出しがあります。セッションIDにスレッドが類似しているとは保証されませんか?既に答えを知っている –