JSF は、セッション スコープのマネージド Bean を の属性として格納します。HttpSessionこれは、Filterbyでのみ使用できますHttpServletRequest#getSession()。
HttpSession session = ((HttpServletRequest) request).getSession();
SessionBean sessionBean = session.getAttribute("sessionBean");
// ...
更新:コメントによると、実際にCDIを使用しているようです:
私のフィルターは JSF よりも前にトリガーされます。getAttribute を使用すると、常に null 値が返されます。セキュリティを実装するためにインターセプターを使用する必要があるため、Bean で 'Named' および 'SessionScoped' アノテーションを使用して CDI を使用しています。
あなたがJSF独自のものを使用していたことを理解し@ManagedBeanました。最初の回答はそれにのみ適用されます。Bean がすでに CDI によって管理されている場合は、@NamedCDI 独自@Injectの通常の方法でFilter.
@Inject
private SessionBean sessionBean;
JSF の場合は、チェック@ManagedBeanを追加するだけです。if (sessionBean != null)フィルターが JSF サーブレットの前に呼び出されるかどうかは関係ありません。セッション Bean が JSF によって作成されるnullと、フィルターには含まれません。