ユーザー(ユーザー名、ifLoggedなど)を追跡するためにuserSessionと呼ばれるSessionScoped Beanがあります。一部のページをフィルタリングしたいので、作成した webFilter から Bean にアクセスする必要があります。それ、どうやったら出来るの?ビーンを潜在的に見えるようにインポートすることさえ不可能のようです。
質問する
13550 次
2 に答える
28
内部では、JSF はセッション スコープのマネージド Bean をHttpSession
マネージド Bean 名をキーとして の属性として格納します。
したがって、あなたが持っている場合、これはメソッド@ManagedBean @SessionScoped public class User {}
内で行う必要があります:doFilter()
HttpSession session = ((HttpServletRequest) request).getSession(false);
User user = (session != null) ? (User) session.getAttribute("user") : null;
if (user != null && user.isLoggedIn()) {
// Logged in.
}
または、実際に JSF の代わりに CDI を使用して Bean を管理している場合@Inject
は、フィルターで直接使用してください。
以下も参照してください。
于 2013-01-22T15:49:53.940 に答える
4
別の方法として、CDI-beans を使用して、sessionbean を通常どおり注入することができます。
于 2013-01-22T19:25:24.550 に答える