2017-05-19 3 views
0

私はサーバー上でZKフレームワークを使用しています。また、私はSpring Securityと自宅のセキュリティサーバーを使用しています。 サーブレットコンテナのセッションタイムアウト - 3600秒。 セキュリティサーバーのセッションタイムアウト - 3600秒。 時々セキュリティサーバーのセッションfilがZKセッションがまだ生きています。私はサーブレットフィルタを書いてリクエストを傍受し、セキュリティサーバのセッションで可用性をチェックしました。ZKセッションを正しく終了させる最も良い方法

したがって、私は/zkauへのリクエストを傍受できますが、それはPOSTリクエストであり、リダイレクト中にZKはサーバー接続エラーに関するメッセージとともにエラーメッセージボックスを表示します。

誰でも知っていますか、セッションが破壊される必要があることをZKに伝える方法はありますか?

あなたの時間を無駄にしてくれた人にお勧めします。

答えて

1

POSTリクエスト中にすぐにセッションを終了するとします。/zkauです。インターフェイスorg.zkoss.zk.ui.Sessionには、セッションを無効にする方法として、invalidateinvalidateNowがあります。前者の方法は、セッションが無効であり、ネイティブセッションが次の要求で無効になることを示すフラグを設定するだけです。私はこれがあなたが必要とするものだと信じています。

+0

不幸にも、私はサーブレットフィルタからZKセッションを取得できません。 'Executions.getCurrent()。getSession()'はnullを返します。 – gooamoko

+0

@gooamokoデフォルトでは、ZKはZKセッションをネイティブセッションの属性として保存するセッションキャッシュを使用します(詳細は 'org.zkoss.zk.ui.http.SessionAgent'クラスを参照)。次のコードスニペットは、現在のサーブレットリクエストからZKセッションを取得するか、または新しいものを作成します: 'WebManager.getSession(request.getServletContext()、(HttpServletRequest)request、false)' – briarheart

+0

ご回答有難うございます。 – gooamoko

関連する問題