Carlos Rocha Posted July 27, 2015 at 03:20 PM Report #586439 Posted July 27, 2015 at 03:20 PM (edited) Olá pessoal! Tenho uma filtro para validar login de administrador. Ocorre que eu tenho um ArrayList de arquivos e diretórios que gostaria que o filtro não bloqueasse caso o usuário não logado chegasse nele! Na minha Servlet de validação, tenho o caso do Admin inválido, do Admin Válido e do Admin Bloqueado. Admin válido = direciona para a página principal.jsp => Ok funcionando Admin Inválido = direciona para página de login index.jsp => Ok funcionando Admin bloqueado = deveria direcionar para a página adminBloqueado.jsp que esta no diretório admin/retiornos/admin. Mas esta direcionando para admin/retiornos/admin/index.jsp e nesse caso, esse arquivo não existe. Servlet ... protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8") ; String login = request.getParameter("login"); String senha = request.getParameter("senha"); if( login.equals("") || senha.equals("") ) { response.sendRedirect("admin/retornos/admin/dadosFaltantes.jsp"); } AutenticaAdmin autenticaAdmin = new AutenticaAdmin(); Admin admin = autenticaAdmin.pesquisaAutenticaAdmin (login, senha); if(admin!=null) { HttpSession sessao = request.getSession(); if(admin.getStatus().equals("d")) { sessao.setAttribute("admin", admin); response.sendRedirect("admin/retornos/admin/loginOK.jsp"); } else { sessao.setAttribute("nomeAdmin", admin.getNome()); response.sendRedirect("admin/retornos/admin/loginBloqueado.jsp"); } } else { response.sendRedirect("admin/retornos/admin/loginERRO.jsp"); } } ... Filtro ..... public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; HttpSession sessao= req.getSession(); boolean logado; System.out.println("------- "+req.getRequestURI()+" ======="); if(sessao.getAttribute("admin")== null && !allowedURIs.contains(req.getRequestURI())) { logado= false; } else { logado= true; } if (!logado){ res.sendRedirect("index.jsp"); } chain.doFilter( request, response ); } public void init(FilterConfig fConfig) throws ServletException { if(allowedURIs == null) { allowedURIs = new ArrayList<String>(); allowedURIs.add(fConfig.getInitParameter("loginActionURI")); allowedURIs.add("/imwsaogotardo/admin/index.jsp"); allowedURIs.add("/imwsaogotardo/admin/retornos/"); } } .... O que esta saindo errado aqui? Edited July 27, 2015 at 03:28 PM by carcleo
Carlos Rocha Posted July 27, 2015 at 03:53 PM Author Report #586442 Posted July 27, 2015 at 03:53 PM Esse problema resolvi removendo essa parte do código: .... if (!logado) { res.sendRedirect("index.jsp"); } ... Mas além de a lógica ficar comprometida, quando estou editando um admin e envio o form, a requisição chega na servlet mas não executa a operação. Outro problema que ocorre é que quando copio e colo a url no navegador, dá erro de compilação e o filtro não roda!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now