私の JSF 2.0 アプリケーションでは、以下のコードを使用して Siteminder リクエスト ヘッダー値をセッション変数に設定しているセッション コーピングされた User Bean があります。
FacesContext context = FacesContext.getCurrentInstance();
Map<String, String> requestHeaderMap = context.getExternalContext().getRequestHeaderMap();
context.getExternalContext().getSessionMap().put(GlobalConstants.SITEMINDER_USERID, userId);
context.getExternalContext().getSessionMap().put(GlobalConstants.SITEMINDER_USERGROUPS, groups);
context.getExternalContext().getSessionMap().put(GlobalConstants.SITEMINDER_USERNAME, userName);
doFilter メソッドの下のフィルターから、次を使用してセッション変数を読み取っています
HttpSession ses = req.getSession();
しかし、ses は NULL を返し、フィルターは認証に失敗します。ここで何が起こっているのか誰にも教えてもらえますか? これは常に発生するわけではなく、10 人に 1 人のユーザーに発生します。もう 1 つの情報は、アプリケーションが負荷分散用の 2 つのマネージド インスタンスを持つ weblogic サーバー上にあるということです。したがって、最初のリクエストが1つのインスタンスに到達し、2番目のリクエストが他のインスタンスに到達したときに、セッションがnullにリセットされているかどうかはわかりません