package trismegistoplanilla.servlets; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.xml.ws.WebServiceRef; import org.apache.commons.codec.digest.DigestUtils; import org.json.JSONObject; import pe.siso.webservicesseguridad.webservices.MenuBean; import pe.siso.webservicesseguridad.webservices.MenuWebService_Service; import pe.siso.webservicesseguridad.webservices.ProyectoBean; import pe.siso.webservicesseguridad.webservices.ProyectoWebService_Service; import pe.siso.webservicesseguridad.webservices.UsuarioBean; import pe.siso.webservicesseguridad.webservices.UsuarioWebService_Service; import trismegistoplanilla.beans.TrabajadorResponsableBean; import trismegistoplanilla.servicesMysql.TrabajadorResponsableService; public class UsuarioServlet extends HttpServlet { @WebServiceRef(wsdlLocation = "WEB-INF/wsdl/app8.sacooliveros.edu.pe_8080/WebservicesSeguridad/UsuarioWebService.wsdl") private UsuarioWebService_Service service; private static final long serialVersionUID = 6883195532697593722L; @WebServiceRef(wsdlLocation = "WEB-INF/wsdl/app8.sacooliveros.edu.pe_8080/WebservicesSeguridad/ProyectoWebService.wsdl") private ProyectoWebService_Service proyectoservice; @WebServiceRef(wsdlLocation = "WEB-INF/wsdl/app8.sacooliveros.edu.pe_8080/WebservicesSeguridad/MenuWebService.wsdl") private MenuWebService_Service menuservice; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String param = request.getParameter("accion"); if (null != param) { switch (param) { case "validarUsuario": validarUsuario(request, response); break; case "redireccion": redireccion(request, response); break; case "redireccionUsuario": redireccionUsuario(request, response); break; default: break; } } } private void validarUsuario(HttpServletRequest request, HttpServletResponse response) throws IOException { int dato = 0; String jsonValidarUsuario = request.getParameter("json"); JSONObject jsonObjValidarUsuario = new JSONObject(jsonValidarUsuario); String txtUsuario = jsonObjValidarUsuario.getString("txtUsuario"); String txtContrasenia = jsonObjValidarUsuario.getString("txtContrasenia"); String passwordEncriptado = DigestUtils.md5Hex(txtContrasenia); response.setContentType("application/json"); PrintWriter pw = response.getWriter(); int proyecto = 5; // SISTEMA TRIMEGISTO PLANILLA dato = validarUsuarioWebservice(txtUsuario, passwordEncriptado, proyecto); JSONObject responseJson = new JSONObject(); if (dato == 0) { responseJson.put("status", false); responseJson.put("message", "Usuario y/o contraseƱa incorrecta."); } else { HttpSession session_actual = request.getSession(true); UsuarioBean usuario = consultarDatosWebservice(txtUsuario, passwordEncriptado, proyecto); TrabajadorResponsableService service = new TrabajadorResponsableService(); TrabajadorResponsableBean trabajadorResponsable = new TrabajadorResponsableBean(); trabajadorResponsable.setDni(usuario.getDni()); JSONObject jsonObjValidarExistenciaTrabajador = service.validarExistenciaTrabajadorPorDni(trabajadorResponsable); if (!jsonObjValidarExistenciaTrabajador.getBoolean("status")) { trabajadorResponsable.setCodigoPlanillaReal(usuario.getCodigoTrabajador()); trabajadorResponsable.setApellidoPaterno(usuario.getApellidoPaternoPersona()); trabajadorResponsable.setApellidoMaterno(usuario.getApellidoMaternoPersona()); trabajadorResponsable.setNombre(usuario.getNombresPersona()); trabajadorResponsable.setCodigoUsuario(usuario.getCodigoUsuario()); JSONObject jsonObjRegistrarTrabajador = service.registrarTrabajadorResponsable(trabajadorResponsable); if (jsonObjRegistrarTrabajador.getBoolean("status")) { } else { } } else { } int codigoProyectoDetalle = usuario.getCodigoProyectoDetalle(); List<ProyectoBean> listaProyectos = listarProyectoUsuario(usuario.getCodigoUsuario()); session_actual.setAttribute("listaProyectos", listaProyectos); List<MenuBean> menuTitulo = listarTituloWebservice(codigoProyectoDetalle); session_actual.setAttribute("menuSesionTitulo", menuTitulo); List<MenuBean> menuModulo = listarModuloWebservice(codigoProyectoDetalle); session_actual.setAttribute("menuSesionModulo", menuModulo); List<MenuBean> menuCategoria = listarCategoriaWebservice(codigoProyectoDetalle); session_actual.setAttribute("menuSesionCategoria", menuCategoria); List<MenuBean> menuSubCategoria = listarSubCategoriaWebservice(codigoProyectoDetalle); session_actual.setAttribute("menuSesionSubCategoria", menuSubCategoria); JSONObject jDatosTrabajadorResponsable = service.obtenerDatosTrabajadorResponsable(usuario.getCodigoTrabajador()); if (jDatosTrabajadorResponsable.getBoolean("status")) { usuario.setNombreSede(jDatosTrabajadorResponsable.getJSONObject("data").getString("nombreSede")); usuario.setNombreArea(jDatosTrabajadorResponsable.getJSONObject("data").getString("nombreArea")); usuario.setNombreCargo(jDatosTrabajadorResponsable.getJSONObject("data").getString("nombreCargo")); session_actual.setAttribute("correoUsuario", jDatosTrabajadorResponsable.getJSONObject("data").getString("correo")); } session_actual.setAttribute("correoUsuario", "responsablesacooliveros@yopmail.com"); session_actual.setAttribute("usuario", usuario); session_actual.setMaxInactiveInterval(10 * 60 * 60);// 10 horas responseJson.put("status", true); } pw.print(responseJson); } private void redireccion(HttpServletRequest request, HttpServletResponse response) throws IOException { HttpSession session_actual = request.getSession(true); UsuarioBean usuarioSession = (UsuarioBean) session_actual.getAttribute("usuario"); String usuario = usuarioSession.getUsuario(); String clave = usuarioSession.getContrasena(); int p = Integer.parseInt(request.getParameter("p")); ProyectoBean proyecto = consultarProyecto(p); response.sendRedirect(proyecto.getUrlProyecto() + "UsuarioServlet?accion=redireccionUsuario&txtUsuario=" + usuario + "&txtContrasena=" + clave + ""); } private void redireccionUsuario(HttpServletRequest request, HttpServletResponse response) throws IOException { int valor = 0; String dato = ""; String usuario = request.getParameter("txtUsuario"); String passwordEncriptado = request.getParameter("txtContrasena"); int proyecto = 5; valor = validarUsuarioWebservice(usuario, passwordEncriptado, proyecto); PrintWriter pw = response.getWriter(); if (valor == 0) { response.sendRedirect("vistas/login.jsp"); //pw.println("0"); } else { HttpSession session_actual = request.getSession(true); UsuarioBean usu = consultarDatosWebservice(usuario, passwordEncriptado, proyecto); int codigoProyectoDetalle = usu.getCodigoProyectoDetalle(); List<ProyectoBean> listaProyectos = listarProyectoUsuario(usu.getCodigoUsuario()); session_actual.setAttribute("listaProyectos", listaProyectos); List<MenuBean> menuTitulo = listarTituloWebservice(codigoProyectoDetalle); session_actual.setAttribute("menuSesionTitulo", menuTitulo); List<MenuBean> menuModulo = listarModuloWebservice(codigoProyectoDetalle); session_actual.setAttribute("menuSesionModulo", menuModulo); List<MenuBean> menuCategoria = listarCategoriaWebservice(codigoProyectoDetalle); session_actual.setAttribute("menuSesionCategoria", menuCategoria); List<MenuBean> menuSubCategoria = listarSubCategoriaWebservice(codigoProyectoDetalle); session_actual.setAttribute("menuSesionSubCategoria", menuSubCategoria); session_actual.setAttribute("usuario", usu); session_actual.setMaxInactiveInterval(10 * 60 * 60);// 10 horas response.sendRedirect("vistas/main.jsp"); } } private java.util.List<pe.siso.webservicesseguridad.webservices.MenuBean> listarCategoriaWebservice(int codigoProyectoDetalle) { // Note that the injected javax.xml.ws.Service reference as well as port objects are not thread safe. // If the calling of port operations may lead to race condition some synchronization is required. pe.siso.webservicesseguridad.webservices.MenuWebService port = menuservice.getMenuWebServicePort(); return port.listarCategoriaWebservice(codigoProyectoDetalle); } private java.util.List<pe.siso.webservicesseguridad.webservices.MenuBean> listarModuloWebservice(int codigoProyectoDetalle) { // Note that the injected javax.xml.ws.Service reference as well as port objects are not thread safe. // If the calling of port operations may lead to race condition some synchronization is required. pe.siso.webservicesseguridad.webservices.MenuWebService port = menuservice.getMenuWebServicePort(); return port.listarModuloWebservice(codigoProyectoDetalle); } private java.util.List<pe.siso.webservicesseguridad.webservices.MenuBean> listarSubCategoriaWebservice(int codigoProyectoDetalle) { // Note that the injected javax.xml.ws.Service reference as well as port objects are not thread safe. // If the calling of port operations may lead to race condition some synchronization is required. pe.siso.webservicesseguridad.webservices.MenuWebService port = menuservice.getMenuWebServicePort(); return port.listarSubCategoriaWebservice(codigoProyectoDetalle); } private java.util.List<pe.siso.webservicesseguridad.webservices.MenuBean> listarTituloWebservice(int codigoProyectoDetalle) { // Note that the injected javax.xml.ws.Service reference as well as port objects are not thread safe. // If the calling of port operations may lead to race condition some synchronization is required. pe.siso.webservicesseguridad.webservices.MenuWebService port = menuservice.getMenuWebServicePort(); return port.listarTituloWebservice(codigoProyectoDetalle); } private ProyectoBean consultarProyecto(java.lang.Integer name) { // Note that the injected javax.xml.ws.Service reference as well as port objects are not thread safe. // If the calling of port operations may lead to race condition some synchronization is required. pe.siso.webservicesseguridad.webservices.ProyectoWebService port = proyectoservice.getProyectoWebServicePort(); return port.consultarProyecto(name); } private java.util.List<pe.siso.webservicesseguridad.webservices.ProyectoBean> listarProyectoUsuario(int codigoUsuario) { // Note that the injected javax.xml.ws.Service reference as well as port objects are not thread safe. // If the calling of port operations may lead to race condition some synchronization is required. pe.siso.webservicesseguridad.webservices.ProyectoWebService port = proyectoservice.getProyectoWebServicePort(); return port.listarProyectoUsuario(codigoUsuario); } private UsuarioBean consultarDatosWebservice(java.lang.String usuario, java.lang.String clave, int proyecto) { // Note that the injected javax.xml.ws.Service reference as well as port objects are not thread safe. // If the calling of port operations may lead to race condition some synchronization is required. pe.siso.webservicesseguridad.webservices.UsuarioWebService port = service.getUsuarioWebServicePort(); return port.consultarDatosWebservice(usuario, clave, proyecto); } private Integer validarUsuarioWebservice(java.lang.String usuario, java.lang.String clave, int proyecto) { // Note that the injected javax.xml.ws.Service reference as well as port objects are not thread safe. // If the calling of port operations may lead to race condition some synchronization is required. pe.siso.webservicesseguridad.webservices.UsuarioWebService port = service.getUsuarioWebServicePort(); return port.validarUsuarioWebservice(usuario, clave, proyecto); } }