2017-11-17 30 views
0

ユーザセッションがタイムアウトしたときにLiferayが何らかのイベントまたはアクションを生成しますか。セッションがタイムアウトするとすぐに(ページをリフレッシュする)何らかのアクションを実行したい(セッションを自動更新したくない、これは私が知っている)。 問題は、セッションのタイムアウトの警告を削除したことです。したがって、ユーザーは実際にセッションがタイムアウトしたことを認識していません。だから、もし彼が何らかの行動(彼のプロフィール画像を変える)をしたら、彼はゲストユーザに変更を加えます(セッションがタイムアウトしたときにゲストユーザのイメージが変更されます)。Liferayセッションのタイムアウト

答えて

0

ゲストユーザーがシステム上のデータを変更できるようにする場合、基礎となるアーキテクチャに問題があり、適切な権限チェックを実装する必要があります。私はあなたがLiferayのデフォルトのUIについて話していないと仮定しています。これは既に適切なチェックを行うべきです。

これまでのところ、99.99%の方法があります。セッションのタイムアウトが発生したときにページの変更を実装すると、データが編集されている可能性があります彼らがそれを提出する直前に、半分満たされた形から離れて行くときに。

ユーザーエクスペリエンスの観点からは、セッションタイムアウトを再度有効にする必要があります。

次の問題は、ブラウザの両方がセッションでカウントダウンされ、完全に同期しているとは限りません。サーバーがセッションをタイムアウトさせる1秒前にブラウザが新しいページにリダイレクトされるとします。これにより、セッションは効果的に拡張されます(ユーザー入力は警告なしで失われます)。これは負け負けです。これを回して、ブラウザのカウントダウンに安全な分を加えて、反対に走るかもしれません。ユーザはまだログインしていて、提出することを期待しています。あなたが書いたのと同じ欠陥のある実装がまだ残っている場合は、再びゲストユーザとしてデータを変更しています。もう一つは失われる。

カウントダウンを再度有効にすると比較して、警告後に明示的にログアウトします。ユーザーは警告を受け取り、セッションを延長し、データを失わず、拡張しない場合、サーバー上のセッションメモリは解放されます時間内にWin-win-win。

おそらく、あなたが期待していた答えではなく、IMHOがこの問題の1つの解決策です。

関連する問題