JSF i proces logowania

0

Witam

Mam do napisania prostą aplikację z logowaniem.

Generalnie po zalogowaniu mamy dostęp do kilku podstron w aplikacji.

Korzystam z JSF i w tym chciałbym napisać całą moją aplikację. Znalazłem post w którym mówiono aby skorzystać z: javax.servlet.Filter. Napisałem sobie taki filtr który podpiąłem w web.xml tak że działa.

Problem polega na tym co zrobić, aby filtrować żądania użytkownika tak, aby niezalogowany użytkownik miał dostęp tylko do index.html, a zalogowani do reszty.

Napisałem takie coś:

 
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
    {
        HttpSession session = ((HttpServletRequest) request).getSession();
        User user = (User) session.getAttribute("currentUser");

        if(user != null)
        {
            System.out.println("Użytkownik zalogowany");
            chain.doFilter(request, response);
        }
        else
        {
            chain.doFilter(request, response);
            System.out.println("Użytkownik Niezalogowany");

            HttpServletRequest req = (HttpServletRequest) request;
            String adress = req.getServletPath();
            String[] elements = adress.split("/");

            if(elements[1].contains(".html"))
            {
                if(!elements[1].contentEquals("index.html"))
                {
                    HttpServletResponse res = (HttpServletResponse) response;
                    res.setStatus(res.SC_MOVED_TEMPORARILY);
                    res.setHeader("Location", "index.html");
                }
            }
        }

    }

Powyższy kod filtruje nie tylko dokumenty html ale również wszystko co leci np skrypty js pliki css itp

Czy istnieje jakiś inny mechanizm lepszy, który łatwo można zainstalować?

Eksperymentowałem z JBoss Seam ale powiem szczerze, że szybkość działania Serwera i aplikacji u mnie na PC jest taka że nie da się w tym wygodnie pracować.

Prosiłbym o rady.

Pozdrawiam :)

0

Poczytaj o realmie i security constraints. Jest to opisane w tutorialu JEE 5.0. Generalnie deklarujesz:

  • datasource (realm) z danymi do logowania (xml, jdbc, ldap)
  • role
  • uprawnienia dla ról
  • formę logowania i wylogowania

potem ustawiasz security constraints na web resources.

1 użytkowników online, w tym zalogowanych: 0, gości: 1