mx.com.sagarpa.snics.SeguridadFiltro.java Source code

Java tutorial

Introduction

Here is the source code for mx.com.sagarpa.snics.SeguridadFiltro.java

Source

package mx.com.sagarpa.snics;

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 mx.com.sagarpa.snics.impl.RestClientImpl;

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SeguridadFiltro implements Filter {
    Logger LOG = LoggerFactory.getLogger(SeguridadFiltro.class);

    @Override
    public void init(FilterConfig config) throws ServletException {
        //
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest) req;
        String requestURI = request.getRequestURI();
        // LOG.info(requestURI);

        //hardcodear la request uri
        requestURI = "testteooo";
        //
        System.out.println(requestURI);
        RestClientImpl clienteRest = new RestClientImpl();
        // usr 4 para que truene
        String respuesta = clienteRest.POST("{\"token\":1,\"ruta\":\"" + requestURI + "\"}",
                "http://localhost:8081/snics-services/Usuario/validarPermiso.do", "");
        System.out.println(respuesta);
        JSONParser parser = new JSONParser();
        JSONObject jsonRespuesta = null;
        try {
            jsonRespuesta = (JSONObject) parser.parse(respuesta);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Boolean autorizacion = (Boolean) jsonRespuesta.get("autorizacion");
        String token = (String) jsonRespuesta.get("token");
        System.out.println(autorizacion);
        //validacion del token tiempo de espera
        if (token.length() != 0) {
            //validacion de los permisos
            if (autorizacion == true) {

                chain.doFilter(req, res);
            } else {
                ((HttpServletResponse) res)
                        .sendRedirect(((HttpServletRequest) req).getContextPath() + "/views/admin/forbidden.jsp");

            }
        } else {
            ((HttpServletResponse) res)
                    .sendRedirect(((HttpServletRequest) req).getContextPath() + "/views/admin/login.jsp");
        }
        //           if (requestURI.startsWith("/Check_License/Dir_My_App/")) {
        //               String toReplace = requestURI.substring(requestURI.indexOf("/Dir_My_App"), requestURI.lastIndexOf("/") + 1);
        //               String newURI = requestURI.replace(toReplace, "?Contact_Id=");
        //               req.getRequestDispatcher(newURI).forward(req, res);
        //           } else {
        //               chain.doFilter(req, res);
        //           }
        //           HttpServletResponse resp = (HttpServletResponse) res;
        //           resp.reset();
        //           resp.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
        //           resp.setHeader("Location", "/mus-web/views/admin/diagnostico.jsp");
        //           return;

    }

    @Override
    public void destroy() {
        //
    }

}