Redirecionar da página de login pelo filtro
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:
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:
Ou de repente um recurso para funcionarem juntos o filtro e esse script
tentei da forma abaixo mas também não funcionou dentro dol filtro:
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
tentei da forma abaixo mas também não funcionou dentro dol filtro:
System.out.println(req.getRequestURI());
if(
sessao.getAttribute("admin")!= null && (
req.getRequestURI() == "/imwsaogotardo/admin/index.jsp" ||
req.getRequestURI() == "/imwsaogotardo/admin/"
)
)
{
res.sendRedirect("principal.jsp");
}
Carlos Rocha
Curtidas 0