ログインしていないときにユーザーをリダイレクトするAuthenticationFilterに取り組んでいます。私はTomEE 7.0.0-M2を使用しているため、Java-EE7をサポートしています。
AuthenticationFilter
@WebFilter(urlPatterns = "/*", dispatcherTypes = {DispatcherType.FORWARD, DispatcherType.REQUEST})
public class AuthenticationFilter implements Filter {
@Inject
private LoginBean loginBean;
...
LoginBean
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import java.io.Serializable;
@Named
@SessionScoped
public class LoginBean implements Serializable {
問題は、注入された LoginBean が login.xhtml のインスタンスではないことです。そのため、ユーザーが正常にログインしたかどうかを確認できません。
LoginBean はセッション属性にありませんが、ここで正しい loginBean を見つけましたが、アクセス方法がわかりません。しかし、Bean は CDI にあるように見えますが、WebFilter からどのようにアクセスできますか?