標準の Seam Identity (これもセッションスコープ) をオーバーライドする Seam セッションスコープのコンポーネント CustomIdentity があります。拡張された CustomIdentity にはプロパティがあります
@Out(required=false, scope=ScopeType.SESSION)private User user
オーバーライドされた login() で、HttpServletRequest のプリンシパルからの情報を取り込んだ User オブジェクトを定義します。アプリケーションの最初のリクエストで、User オブジェクトは SESSION スコープで期待どおりにアウトジェクトされます。ただし、2 番目のリクエストでは、User オブジェクトがセッションから消失しており、それを注入するページにアクセスすると、例外が発生します。
私の質問は、コンポーネントが正確にいつ排出されるかです。
- CustomIdentity コンポーネントのすべてのメソッドの後に (の参照が含まれていなくても
user
)? - User コンポーネントの参照を含む各メソッドの後?
そしてrequired
属性について:
- アウトジェクト時に User オブジェクトが と評価された場合
null
、すでにアウトジェクトされたユーザーはセッション スコープから削除されますか?
乾杯!