package com.FitBank.web.servlet; import com.FitBank.common.Servicios; import com.FitBank.web.util.ConstruirContenido; import com.FitBank.web.util.EjecutarEventos; import com.FitBank.xml.Mensaje.MensajeXml; /** * Servlet que inicializa un mensaje TIP_SIG que se env�a para su verificaci�n y autenticaci�n al * repositorio, luego analiza el resultado y administra la la sesi�n del Application Server, si * este es positivo asigna la sesi�n caso contrario invalida la sesi�n. * * @author FitBank */ public class CallExternal extends BaseServlets { protected String messageSecurity = ""; protected void inicializar() { aceptarGet(); aceptarPost(); obtenerWriter(); } protected void procesarPedido() { evento = new EjecutarEventos(); evento.procesoXml.crearMensaje(construirEncabezado()); evento.obtenerCompanias(pedido); if(verificarRespuesta(evento)) { writer.print(ConstruirContenido.forSession(pedido, Boolean.TRUE)); } else { sesion.invalidate(); writer.print(ConstruirContenido.forInvalidate(messageSecurity)); } } /** * M�todo en el cual se construye el objeto que contiene los par�metros del encabezado del * mensaje que se va a construir para subir a sesi�n. * * @return Matriz de objetos String en la cual se retornan los par�metros del encabezado. */ protected String[][] construirEncabezado() { String[][] cb = new String[][] { { "USR", Servicios.verificarCadena((String)pedido.getParameter("usuario")) }, { "SID", sesion.getId() }, { "TIP", MensajeXml.TIP_SIG }, { "IPA", pedido.getRemoteAddr() }, { "MAC", Servicios.verificarCadena(pedido.getParameter("maquina")) }, { "SUB", "01" }, { "TRN", "0000" }, { "VER", "01" }, { "TOK", Servicios.verificarCadena(pedido.getParameter("sesion")) } }; return cb; } /** * M�todo determina si el mensaje enviado del repositorio como respuesta indica que el usuario ha * sido autenticado por el sitema(TRUE) o ha sido rechazado(FALSE). * * @param evento Objeto que contiene dentro de s� el mensaje al que hay que analizar la * respuesta. * * @return Devuelve un objeto que indica si fue exitoso el proceso ejecutado dentro del m�todo. */ protected boolean verificarRespuesta(EjecutarEventos evento) { if(evento.procesoXml.getXmlMensaje() != null) { if(evento.procesoXml.getXmlMensaje().getValor("COD", MensajeXml.SEC_RES).equalsIgnoreCase("0")) return true; else { messageSecurity = evento.procesoXml.getXmlMensaje().getValor("DSC", MensajeXml.SEC_RES); return false; } } else { System.out.println("ERROR EL REPOSITORIO DEVUELVE NULL.. Servlet ValidarSesion"); return false; } } }