# @Webfilter -  für doppelte Anmeldung



## auditweb (24. Mrz 2015)

Hallo,

ich habe folgenden Webfilter Code:


```
@WebFilter(
urlPatterns={"/search.jsp"},
dispatcherTypes= {
    DispatcherType.FORWARD,
    DispatcherType.REQUEST
    },
    filterName="LoggingFilter",
    description="Checks if user already logged in"
)
public class FilterAlreadyLoggedUser implements Filter {


public FilterAlreadyLoggedUser() {}


public void destroy() {}


public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
     HttpServletRequest request = (HttpServletRequest) servletRequest;
     HttpServletResponse response = (HttpServletResponse) servletResponse;
     HttpSession session = request.getSession(false);

     if(session.getAttribute("customer") != null){ //If user is already logged in
         response.sendRedirect(request.getContextPath() + "/alreadyLoggedIn.jsp");
       } else{
            chain.doFilter(servletRequest, servletResponse);
      }
}


public void init(FilterConfig fConfig) throws ServletException {}

}
```

Diesen Filter setzte ich vor meine eigentliche "Hauptseite", welche sich "search.jsp" nennt.
Ich möchte prüfen, ob der Nutzer, welcher sich gerade anmeldet, bereits eingeloggt ist.
Wenn ja "forwarde" ich diesen auf eine Seite, wo er eine Nachricht erhält. 
Wenn er nicht eingeloggt ist, soll alles beim alten bleiben.

Den User setzte ich zum allerersten mal im Servlet "SignIn" in die Session Bean/Attribute "customer".

Vom  Ablauf sieht das also so aus:

login.jsp -> SignIn(zur Validierung) -> DataAccess (holt User daten aus DB) -> SingIn(Userdaten Email & Passwort richtig dann) -> search.jsp 

Danke für jede Hilfe.


----------

