Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

Redirecionar da página de login pelo filtro

$
0
0

Bom Dia!

 

Estou com a seguinte dificuldade:

 

Tenho uma página de login e gostaria de que toda vez que o usuário chegasse lá, fosse feita uma verificação.

 

Caso ele já estiver logado, ele é redirecionado para a página principal.

 

Eu consegui isso com o código abaixo:

<%@ page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 
<jsp:useBean id="validaLogin" class="dao.admin.TestaLoginAdmin" />
 
<c:set var="AdminLogado" value="${validaLogin.testaLoginAdmin(pageContext.request)}" />
 
<c:choose>
  <c:when test="${AdminLogado != null}">
      <script>window.location="principal.jsp"; </script>
  </c:when>
</c:choose>
 

<div id="indexMeio">
 
    <h2>Formulário de Acesso ao ambiente administrativo</h2><br /><br />
    
    <form action="../LoginAdminServlet" method="post">
      <label>Login</label> : <input type="text" name="login" id="login" maxlength="10" required="required" /><br /><br />
      <label>Senha</label> : <input type="password" name="senha" id="senha" maxlength="10" required="required" /><br /><br /><br />
      
      <input type="submit" value="Entrar">
    </form><br />
 
</div>

Sim, funciona normalmente.

 

Mas eu tenho um filtro para verificar nas outras páginas se o usuário esta logado para poder acessá-las e esse filtro bloqueia o script acima dando erro de servidor.

 

Mas pensei se isso não poderia ser feito diretamente no filtro mas não estou conseguindo.

Podem me ajudar?

Veja o filtro:

package filtro;
 
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
@WebFilter("/admin/*")
public class AdminFilter implements Filter 
{
    private static List<String> allowedURIs;
    
    public AdminFilter() 
    {
        // TODO Auto-generated constructor stub
    }
 
public void destroy() 
{
// TODO Auto-generated method stub
}
 
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException 
    {         
      HttpServletRequest req = (HttpServletRequest) request;  
      HttpServletResponse res = (HttpServletResponse) response;  
      HttpSession sessao= req.getSession();  
      
           if(
            sessao.getAttribute("admin")!= null || 
            precisaDireitoAcessoURI(req.getRequestURI()) || 
            req.getRequestURI().equals("/imwsaogotardo/admin/") || 
            req.getRequestURI().equals("/imwsaogotardo/admin")
          )
           {
               chain.doFilter( request, response );
           }
           else
           {    
               res.sendRedirect("index.jsp");  
           }            
    }
 
public void init(FilterConfig fConfig) throws ServletException 
    {
        if(allowedURIs == null)
        {
            allowedURIs = new ArrayList<String>();
            allowedURIs.add("/imwsaogotardo/admin/index.jsp");
            allowedURIs.add("/imwsaogotardo/admin/retornos/");
        }
    }
 
public boolean precisaDireitoAcessoURI(String uriAtual) 
{
 
   for (String uri: allowedURIs) 
   {
       if (uriAtual.contains(uri))
           return true;
   }
 
   return false;
} 
}

Ou de repente um recurso para funcionarem juntos o filtro e esse script


Viewing all articles
Browse latest Browse all 14190

Trending Articles