Mejoras auditoria y secuencias
This commit is contained in:
parent
6f669ebb76
commit
7dd9d28f69
|
|
@ -15,11 +15,6 @@ import javax.ws.rs.container.ContainerResponseFilter;
|
|||
import javax.ws.rs.core.MultivaluedMap;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
|
||||
/**
|
||||
* See http://www.w3.org/TR/cors/
|
||||
*
|
||||
* @author airhacks.com
|
||||
*/
|
||||
@Provider
|
||||
@Priority(Priorities.HEADER_DECORATOR)
|
||||
public class CorsFilter implements ContainerResponseFilter {
|
||||
|
|
|
|||
|
|
@ -12,17 +12,21 @@ import com.qsoft.erp.constantes.DominioConstantes;
|
|||
import com.qsoft.erp.constantes.EntidadEnum;
|
||||
import com.qsoft.erp.dominio.AccionGenerica;
|
||||
import com.qsoft.erp.dominio.exception.DominioExcepcion;
|
||||
import com.qsoft.erp.dominio.util.AuditoriaUtil;
|
||||
import com.qsoft.erp.dto.AuditoriaDTO;
|
||||
import com.qsoft.wmp.services.util.ServiceUtil;
|
||||
import com.qsoft.wmp.services.xsd.EntradaAccion;
|
||||
import com.qsoft.wmp.services.xsd.SalidaAccion;
|
||||
import java.util.List;
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.inject.Inject;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
/**
|
||||
|
|
@ -36,9 +40,14 @@ public class AccionResource {
|
|||
@Inject
|
||||
private AccionGenerica accion;
|
||||
|
||||
@Inject
|
||||
private AuditoriaUtil auditoria;
|
||||
|
||||
@Context
|
||||
private HttpServletRequest request;
|
||||
|
||||
@PostConstruct
|
||||
public void postConstructor() {
|
||||
System.out.println("POST CONTRUCTOR " + accion);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -64,10 +73,17 @@ public class AccionResource {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public SalidaAccion postJson(EntradaAccion entrada) {
|
||||
SalidaAccion salida = null;
|
||||
Long time = System.currentTimeMillis();
|
||||
EntidadEnum entidad = null;
|
||||
if (entrada == null) {
|
||||
salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.WARNING, CodigoRespuesta.CODIGO_IN_NULO, "La entrada no puede ser nula");
|
||||
} else {
|
||||
EntidadEnum entidad = Enum.valueOf(EntidadEnum.class, entrada.getBodyIn().getEntidad());
|
||||
AuditoriaDTO dto = ServiceUtil.crearAuditoria(entrada.getHeaderIn(), entrada.getBodyIn().getEntidad(),
|
||||
super.getClass().getName() + ".posJson", request.getRequestURL().toString(),
|
||||
AccionGenerica.class.getName() + ".accionGenerica", ServiceUtil.REQUEST,
|
||||
"" + entrada.getBodyIn().getTipoAccion(), 0, ServiceUtil.getJson(entrada));
|
||||
this.auditoria.AddAuditoria(dto);
|
||||
entidad = Enum.valueOf(EntidadEnum.class, entrada.getBodyIn().getEntidad());
|
||||
if (entidad == null) {
|
||||
salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO, "No se puede identificar la entidad a la cual se desea acceder");
|
||||
} else {
|
||||
|
|
@ -88,6 +104,12 @@ public class AccionResource {
|
|||
}
|
||||
}
|
||||
}
|
||||
time = System.currentTimeMillis() - time;
|
||||
AuditoriaDTO dto = ServiceUtil.crearAuditoria(salida.getHeaderOut(), entidad.name(),
|
||||
super.getClass().getName() + ".posJson", request.getRequestURL().toString(),
|
||||
AccionGenerica.class.getName() + ".accionGenerica", ServiceUtil.RESPONSE,
|
||||
"", time.intValue(), ServiceUtil.getJson(salida.getError()));
|
||||
this.auditoria.AddAuditoria(dto);
|
||||
return salida;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,17 +11,20 @@ import com.qsoft.util.ms.pojo.HeaderMS;
|
|||
import com.qsoft.erp.constantes.DominioConstantes;
|
||||
import com.qsoft.erp.dominio.ConsultaGenerica;
|
||||
import com.qsoft.erp.dominio.exception.DominioExcepcion;
|
||||
import com.qsoft.erp.dominio.util.AuditoriaUtil;
|
||||
import com.qsoft.wmp.services.util.ServiceUtil;
|
||||
import com.qsoft.wmp.services.xsd.EntradaConsulta;
|
||||
import com.qsoft.wmp.services.xsd.SalidaConsulta;
|
||||
import java.util.List;
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.inject.Inject;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
/**
|
||||
|
|
@ -35,9 +38,14 @@ public class ConsultaResource {
|
|||
@Inject
|
||||
private ConsultaGenerica consulta;
|
||||
|
||||
@Inject
|
||||
private AuditoriaUtil auditoria;
|
||||
|
||||
@Context
|
||||
private HttpServletRequest request;
|
||||
|
||||
@PostConstruct
|
||||
public void postConstructor() {
|
||||
System.out.println("======> POST CONTRUCTOR " + consulta);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -63,9 +71,15 @@ public class ConsultaResource {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public SalidaConsulta postJson(EntradaConsulta entrada) {
|
||||
SalidaConsulta salida = null;
|
||||
// Long time = System.currentTimeMillis();
|
||||
if (entrada == null) {
|
||||
salida = ServiceUtil.crearSalidaConsultaError(ErrorTipo.WARNING, CodigoRespuesta.CODIGO_IN_NULO, "La entrada no puede ser nula");
|
||||
} else {
|
||||
// AuditoriaDTO dto = ServiceUtil.crearAuditoria(entrada.getHeaderIn(), entrada.getBodyIn().getEntidad(),
|
||||
// super.getClass().getName() + ".posJson", this.request.getRequestURL().toString(),
|
||||
// ConsultaGenerica.class.getName() + ".consultaGenerica", ServiceUtil.REQUEST,
|
||||
// "" + entrada.getBodyIn().getTipoConsulta(), 0, ServiceUtil.getJson(entrada));
|
||||
// this.auditoria.AddAuditoria(dto);
|
||||
try {
|
||||
List resultado = null;
|
||||
resultado = consulta.consultaGenerica(entrada.getHeaderIn(), entrada.getBodyIn().getEntidad(),
|
||||
|
|
@ -76,12 +90,18 @@ public class ConsultaResource {
|
|||
salida = ServiceUtil.crearSalidaConsultaOk(header, entrada.getBodyIn().getEntidad(), resultado);
|
||||
} catch (DominioExcepcion ex) {
|
||||
salida = ServiceUtil.crearSalidaConsultaError(ex.getTipo(), ex.getCodigo(), ex.getMensaje());
|
||||
}catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO, ex.toString());
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
// time = System.currentTimeMillis() - time;
|
||||
// AuditoriaDTO dto = ServiceUtil.crearAuditoria(salida.getHeaderOut(), salida.getBodyOut().getEntidad(),
|
||||
// super.getClass().getName() + ".posJson", this.request.getRequestURL().toString(),
|
||||
// ConsultaGenerica.class.getName() + ".consultaGenerica", ServiceUtil.RESPONSE,
|
||||
// "", time.intValue(), ServiceUtil.getJson(salida.getError()));
|
||||
// System.out.println("=====> TIEMPO " + dto.getAudTiempoEjecucion());
|
||||
// this.auditoria.AddAuditoria(dto);
|
||||
return salida;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ import com.qsoft.erp.constantes.DominioConstantes;
|
|||
import com.qsoft.erp.constantes.EntidadEnum;
|
||||
import com.qsoft.erp.dominio.MultipartService;
|
||||
import com.qsoft.erp.dominio.exception.DominioExcepcion;
|
||||
import com.qsoft.erp.dominio.util.AuditoriaUtil;
|
||||
import com.qsoft.erp.dto.AuditoriaDTO;
|
||||
import com.qsoft.erp.dto.DocumentoDTO;
|
||||
import com.qsoft.erp.dto.LiquidacionDTO;
|
||||
import com.qsoft.wmp.services.util.ServiceUtil;
|
||||
|
|
@ -27,11 +29,14 @@ import java.util.Map;
|
|||
import javax.annotation.PostConstruct;
|
||||
import javax.inject.Inject;
|
||||
import javax.servlet.annotation.MultipartConfig;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.core.Application;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import org.glassfish.jersey.media.multipart.FormDataBodyPart;
|
||||
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
|
||||
|
|
@ -52,6 +57,12 @@ public class MultipartResource {
|
|||
@Inject
|
||||
private MultipartService multipart;
|
||||
|
||||
@Inject
|
||||
private AuditoriaUtil auditoria;
|
||||
|
||||
@Context
|
||||
private HttpServletRequest request;
|
||||
|
||||
@PostConstruct
|
||||
public void postConstructor() {
|
||||
|
||||
|
|
@ -75,6 +86,7 @@ public class MultipartResource {
|
|||
public SalidaConsulta postFile(FormDataMultiPart input) {
|
||||
SalidaConsulta salida = null;
|
||||
EntradaLiquidacion entrada = null;
|
||||
Long time = System.currentTimeMillis();
|
||||
|
||||
boolean estado = false;
|
||||
if (input != null) {
|
||||
|
|
@ -82,23 +94,29 @@ public class MultipartResource {
|
|||
Map<String, List<FormDataBodyPart>> parts = input.getFields();
|
||||
int i = 0;
|
||||
try {
|
||||
System.out.println("===========> RECIBE: " + parts);
|
||||
for (List<FormDataBodyPart> p : parts.values()) {
|
||||
FormDataBodyPart bp = p.get(0);
|
||||
if (i == 0) {
|
||||
entrada = getEntrada(bp);
|
||||
if(entrada != null && entrada.getBodyIn().getParametros() != null &&
|
||||
entrada.getBodyIn().getParametros().get("Liquidacion") != null &&
|
||||
entrada.getBodyIn().getParametros().get("Liquidacion").getPolCodigo() != null &&
|
||||
entrada.getBodyIn().getParametros().get("Liquidacion").getPolCodigo() == -1){
|
||||
if (entrada != null && entrada.getBodyIn() != null) {
|
||||
AuditoriaDTO dto = ServiceUtil.crearAuditoria(entrada.getHeaderIn(), entrada.getBodyIn().getEntidad(),
|
||||
super.getClass().getName() + ".posFile", request.getRequestURL().toString(),
|
||||
MultipartService.class.getName() + ".multipartGenerico", ServiceUtil.REQUEST,
|
||||
"" + entrada.getBodyIn().getTipoConsulta(), 0, ServiceUtil.getJson(entrada));
|
||||
this.auditoria.AddAuditoria(dto);
|
||||
}
|
||||
if (entrada != null && entrada.getBodyIn().getParametros() != null
|
||||
&& entrada.getBodyIn().getParametros().get("Liquidacion") != null
|
||||
&& entrada.getBodyIn().getParametros().get("Liquidacion").getPolCodigo() != null
|
||||
&& entrada.getBodyIn().getParametros().get("Liquidacion").getPolCodigo() == -1) {
|
||||
throw new DominioExcepcion(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO,
|
||||
"No existe una poliza activa no puede ejecutar este proceso");
|
||||
"No existe una poliza activa no puede ejecutar este proceso");
|
||||
}
|
||||
} else {
|
||||
InputStream in = bp.getValueAs(InputStream.class);
|
||||
try {
|
||||
if (in != null && entrada != null && entrada.getBodyIn().getParametros() != null &&
|
||||
entrada.getBodyIn().getParametros().get("Liquidacion") != null) {
|
||||
if (in != null && entrada != null && entrada.getBodyIn().getParametros() != null
|
||||
&& entrada.getBodyIn().getParametros().get("Liquidacion") != null) {
|
||||
DocumentoDTO doc = (DocumentoDTO) entrada.getBodyIn().getParametros().get("Liquidacion").getDocumentos().get(i - 1);
|
||||
doc.setData(in.readAllBytes());
|
||||
}
|
||||
|
|
@ -129,6 +147,12 @@ public class MultipartResource {
|
|||
} else {
|
||||
ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_VALOR_NULO, "ERROR. La entrada no puede ser nula");
|
||||
}
|
||||
time = System.currentTimeMillis() - time;
|
||||
AuditoriaDTO dto = ServiceUtil.crearAuditoria(salida.getHeaderOut(), salida.getBodyOut().getEntidad(),
|
||||
super.getClass().getName() + ".posFile", request.getRequestURL().toString(),
|
||||
MultipartService.class.getName() + ".multipartGenerico", ServiceUtil.RESPONSE,
|
||||
"", time.intValue(), ServiceUtil.getJson(salida.getError()));
|
||||
this.auditoria.AddAuditoria(dto);
|
||||
|
||||
return salida;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,13 +5,18 @@
|
|||
*/
|
||||
package com.qsoft.wmp.services.util;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.qsoft.erp.constantes.DominioConstantes;
|
||||
import com.qsoft.erp.dto.AuditoriaDTO;
|
||||
import com.qsoft.util.constantes.CodigoRespuesta;
|
||||
import com.qsoft.util.constantes.ErrorTipo;
|
||||
import com.qsoft.util.ms.pojo.HeaderMS;
|
||||
import com.qsoft.wmp.services.xsd.SalidaAccion;
|
||||
import com.qsoft.wmp.services.xsd.SalidaConsulta;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -19,7 +24,8 @@ import java.util.Map;
|
|||
*/
|
||||
public class ServiceUtil {
|
||||
|
||||
|
||||
public static final String REQUEST = "Request";
|
||||
public static final String RESPONSE = "Response";
|
||||
|
||||
/**
|
||||
* Crear salida
|
||||
|
|
@ -121,4 +127,59 @@ public class ServiceUtil {
|
|||
return salida;
|
||||
}
|
||||
|
||||
/**
|
||||
* Permite convertiri un objeto determinado en JSON
|
||||
* @param object
|
||||
* @return
|
||||
*/
|
||||
public static String getJson(Object object) {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
String json = null;
|
||||
try {
|
||||
json = mapper.writeValueAsString(object);
|
||||
} catch (JsonProcessingException ex) {
|
||||
Logger.getLogger(ServiceUtil.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
return json;
|
||||
}
|
||||
|
||||
/**
|
||||
* Permite crear el DTO de auditoria
|
||||
*
|
||||
* @param header
|
||||
* @param entidad
|
||||
* @param metodo
|
||||
* @param endpoint
|
||||
* @param backend
|
||||
* @param servicio
|
||||
* @param json
|
||||
* @param tiempo
|
||||
* @param accion
|
||||
* @return
|
||||
*/
|
||||
public static AuditoriaDTO crearAuditoria(HeaderMS header, String entidad, String metodo,
|
||||
String endpoint, String backend, String servicio, String accion, Integer tiempo, String json) {
|
||||
AuditoriaDTO auditoria = new AuditoriaDTO();
|
||||
auditoria.setAudAplicacion(header.getAplicacion());
|
||||
auditoria.setAudBackend(backend);
|
||||
auditoria.setAudCanal(header.getCanal());
|
||||
auditoria.setAudDinamico(json);
|
||||
auditoria.setAudDispositivo(header.getDispositivo());
|
||||
auditoria.setAudEmpresa(header.getEmpresa());
|
||||
auditoria.setAudEndpoint(endpoint);
|
||||
auditoria.setAudEntidad(entidad);
|
||||
auditoria.setAudFecha(DominioConstantes.getBddDate());
|
||||
auditoria.setAudGeolocalizacion(header.getGeolocalizacion());
|
||||
auditoria.setAudIdioma(header.getIdioma());
|
||||
auditoria.setAudMedio(header.getMedio());
|
||||
auditoria.setAudMetodo(metodo);
|
||||
auditoria.setAudServicio(servicio);
|
||||
auditoria.setAudTiempoEjecucion(tiempo);
|
||||
auditoria.setAudTipoEjecucion(accion);
|
||||
auditoria.setAudToken(header.getUuid());
|
||||
auditoria.setAudTransaccion(header.getTipoTransaccion());
|
||||
auditoria.setAudUsuario(header.getUsuario());
|
||||
return auditoria;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue