Dúvida em sistema de Login, diretório restrito

1 resposta
J

Olá!

Estou criando um sistema em Java onde tem um diretório com páginas restritas, onde somente que faz o login consegue acessar essa páginas.

Vejam como foi feito, aqui parte do web.xml onde diz que o diretório admin é restrito:

<filter>
        <filter-name>Filtro Seguranca</filter-name>
        <filter-class>br.com.viaexpress.servlets.FiltroSeguranca</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>Filtro Seguranca</filter-name>
        <url-pattern>/admin/*</url-pattern>
    </filter-mapping>

E aqui a classe que dá permissão, caso o login seja efetuado com sucesso:

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class FiltroSeguranca implements Filter {
    
    public void init(FilterConfig config) throws ServletException {
    }
    
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpSession session = ((HttpServletRequest)req).getSession();
        Solicitantes solicitante = (Solicitantes)session.getAttribute("solicitante");

        if(solicitante==null){
            session.setAttribute("msg","Você não está logado no sistema!");
            ((HttpServletResponse)res).sendRedirect("../index.jsp");
        }else{
            chain.doFilter(req, res);
        }
    }

    public void destroy() {
    }
}

Tudo isso está funcionando corretamente, a dúvida que tenho é como fazer pra encerrar a seção do usuário, por exemplo, quando ele clicar em logout ???

Obrigado!

1 Resposta

J

Tente assim:

HttpSession session = ((HttpServletRequest)req).getSession(); session.invalidate();

Criado 20 de setembro de 2006
Ultima resposta 20 de set. de 2006
Respostas 1
Participantes 2