ログインしていないユーザーが特定のページにアクセスするのを阻止するフィルタを作成しようとしていました。このため、次のようなフィルタクラスを作成しました。ログインページにログインしていないユーザーをリダイレクトするJavaフィルタ
私は今、非常に奇妙な愚かなことが起こっている()のinitでArrayListのURLリストを作成するに
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String url = request.getRequestURI();
boolean allowedRequest = false;
System.out.println(url);
if(urlList.contains(url)) {
allowedRequest = true;
System.out.println("in list");
}
if (!allowedRequest) {
Object o = request.getSession().getAttribute("UserInfo");
if (null == o) {
System.out.println("Hey i am in");
response.sendRedirect("/login.jsp");
}
}
chain.doFilter(req, res);
} // end of doFilter
はdoesnotユーザーが必要とするページが記録されるようにするには。 home.jspとdcr.jspという2つのページがあるとします。私がlogin.jspにうまくリダイレクトされたときにhome.jspにアクセスしようとすると、dcr.jspにアクセスしようとしているときにリダイレクトされませんが、(null == o)私は取得していますので、console.THisに印刷されたその行は、私は、これは私がnull == oは本当だったことを私に伝えサーバー
/dcrmaintenance.jsp
Hey i am in
で取得出力され、サーバ で取得出力されます。
ページdcr.jspはセッションオブジェクトにアクセスするため、ユーザーはログインしていないため、期待通りにjava.lang.NullPointerExceptionが取得されていますが、ループに入った後でもリダイレクトが行われない理由を理解できません。私は間違いを犯しているところでそれを評価することができます。
私はセキュリティ上の制約を使用する方法をチェックアウトしますworked.But他filter.The他のソリューションを持っていませんでし!ありがとう。 – Shamik