Java-Filtern, umleiten von Benutzern, die nicht angemeldet-login-Seite

War ich versucht zu machen, einen filter zu verhindern, dass Benutzer, die nicht angemeldet sind Zugriff auf bestimmte Seiten.Für dies habe ich einen filter der Klasse mit dem folgenden doFilter Methode

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

Zu ermöglichen, die Seiten, die doesnot muss der Benutzer angemeldet sein, erstellte ich eine arraylist url-Liste in init()

Nun eine sehr seltsame dumme Sache passiert. angenommen, ich habe zwei Seiten zu Hause.jsp und dcr.jsp. Wenn ich versuche, auf zu Hause.jsp-ohne Anmeldung die bin ich erfolgreich umgeleitet, um sich einzuloggen.jsp-aber, wenn ich versuche, Zugriff auf dcr.jsp ist es nicht umgeleitet werden, obwohl es in die Schleife if(null == o) das kann ich verstehen, denn ich bin immer, dass die Linie gedruckt in der Konsole.Dies ist die Ausgabe, die ich in den server
Dies ist die Ausgabe, die ich in der server

/dcrmaintenance.jsp

Hey i am in

Das sagt mir, dass die null == a wahr ist.

Die Seite dcr.jsp auf ein session-Objekt und da der Benutzer nicht eingeloggt ist java.lang.NullPointerException wie erwartet, aber ich kann nicht verstehen, warum die Umleitung nicht statt, auch nach Eintritt in die Schleife.Wenn jemand pt, wo ich bin, einen Fehler zu machen, würde es geschätzt werden.

InformationsquelleAutor Shamik | 2012-04-19

Schreibe einen Kommentar