Validaciones

Como parte del proceso de exportación de extensiones personalizadas, la herramienta export realiza las siguientes validaciones en las personalizaciones para asegurarse de que se ajustan a los estándares de despliegue en la nube.

Nota: Al ejecutar la herramienta de exportación en el devtoolkit_extensions.xml archivo, se realizan las siguientes validaciones. En breve, si alguna de estas validaciones falla, el objetivo de validación fallará y la herramienta generará un mensaje de excepción detallando el error y dónde falla la validación por primera vez. La herramienta crea el paquete de personalización sólo si se solucionan todos los errores de validación. Estas validaciones se aplican al cargar personalizaciones en su entorno de SaaS.
  • Validación de propiedades personalizadas
  • Conflictos de nombres de clase
  • Conflictos de nombres de archivo
  • Log4j 1.x uso (descontinuado)
Para comprobar si todas las personalizaciones son válidas durante la exportación, utilice el -Dfail indicador:
./sci_ant.sh -f ../devtoolkit/devtoolkit_extensions.xml export -Dfail=class,file,log4j

Comprobaciones de validación

Un JAR de personalización puede contener problemas que podrían provocar fallos o complicaciones en el entorno de producción. Sin reglas de validación, estos problemas pueden provocar fallos en tiempo de ejecución y vulnerabilidades de seguridad. Para solucionar estos problemas, se han desarrollado las siguientes comprobaciones de validación para analizar estáticamente el paquete de personalización, detectar los problemas con antelación y aplicar prácticas de personalización seguras.
Conflictos de nombres de clase
Valida que no haya archivos de clase duplicados entre el JAR de personalización y las clases existentes en out-of-the-box (OOB) . Esta comprobación garantiza que no se produzcan conflictos de carga de clases o anulaciones inesperadas en tiempo de ejecución.
Conflictos de nombres de archivo
Valida que todos los archivos que se encuentran dentro del directorio /files/ dentro del JAR, cumplen con una lista blanca predefinida de rutas de archivo permitidas. Cualquier archivo que no coincida con la lista blanca se marca como conflicto.
Sólo se permiten los siguientes patrones de archivo.
extensions/**/*
properties/customer_overrides.properties
properties/action.properties
properties/*ValueMaps.xml
repository/eardata/**/extn/**/*
El siguiente patrón de archivo está en la lista negra.
repository/eardata/**/extn/**/*.sample
Faltan importaciones de clases
Valida que todas las clases importadas que se utilizan en el código de personalización están presentes en el tiempo de ejecución DTK o forman parte de las bibliotecas de terceros aprobadas. Esta validación evita fallos de ejecución debidos a la falta de dependencias.
Validaciones de extensiones de bases de datos
  • Columnas LOB
    Comprueba las columnas para asegurarse de que no se introduzcan nuevas columnas LOB personalizadas en los xmls de la entidad.
  • Tipos de datos grandes
    Comprueba las columnas para asegurarse de que no se introduzcan nuevas columnas con un tamaño superior a 500 en los archivos XML de la entidad.
  • Exceso de índices personalizados
    Comprueba si el número de índices personalizados es superior a cinco en una tabla personalizada o lista para usar (OOB), lo que podría afectar al rendimiento de inserción o actualización.
Conexiones directas a bases de datos y operaciones SQL
Las siguientes validaciones identifican patrones de acceso a bases de datos de riesgo.
  • Conexiones JDBC
    Comprueba el uso de getConnection() o métodos similares para acceder a la base de datos.
  • Ejecución de SQL sin procesar
    Comprueba el uso de DELETE, DROP, ALTER operaciones SQL, que podrían causar efectos secundarios no deseados.
  • JDBC ResultSet iteración
    Comprueba el uso de cualquier interacción de bajo nivel con la base de datos.
  • Consultas SQL directas contra columnas LOB personalizadas
    Comprueba si un código personalizado contiene alguna consulta SQL directa contra las columnas LOB personalizadas detectadas en Validaciones de extensiones de base de datos - Columnas LOB.
  • Consultas LIKE
    Comprueba el uso del operador SQL LIKE en consultas que pueden provocar problemas de rendimiento, especialmente cuando se utiliza con columnas LOB.
Comprobaciones de marcos de registro no aprobados y Sys.Out
  • Señala el uso de los siguientes marcos de registro de consola en código personalizado.
    • System.out.print*
    • System.err.print*
  • Señala el uso de las siguientes importaciones de registro no aprobadas.
    • Apache Commons Registro: org.apache.commons.logging.
    • SLF4J (Fachada de registro simple para Java): org.slf4j.
    • Registro de Java Util: java.util.logging.
    • Logback: ch.qos.logback.
Comprobaciones de personalizaciones web.xml frente a OOB web.xml
Esta validación garantiza que el archivo personalizado conserve todas las configuraciones necesarias del archivo OOB web.xml incluido con DTK, al tiempo que permite entradas adicionales. Cualquier elemento que falte se notifica durante la validación.
Nota: Todas las infracciones se recogen en un informe al que se puede acceder desde las siguientes ubicaciones.
<runtime_sandbox>/tmp/report/*_details.csv
<runtime_sandbox>/tmp/report/*_summary.csv

Validación de propiedades personalizadas

La herramienta realiza una serie de validaciones sobre las propiedades personalizadas añadidas en el archivo customer_override.properties para asegurarse de que se ajustan a los estándares de despliegue en la nube. Las validaciones siguientes se realizan en las propiedades personalizadas:

La herramienta valida que las propiedades personalizadas definidas en el archivo customer_override.properties pertenecen a los siguientes servicios sólo:
  • yfs
  • xapirest
  • elasticsearch
  • logfilter
  • dbclassCache
  • jdbcService (of the pattern jdbcService.*.prop_* )
Nota: Para los servicios listados anteriormente, la herramienta falla la validación de propiedades personalizadas definida para las propiedades con DATABASE_SUPPORT=Y. La herramienta también omite las propiedades personalizadas definidas para las propiedades que están en el formato yfs.yfs.logall* .

Validación de Log4j Uso de 1.x

La comprobación de validación Log4j 1.x comprueba que el archivo JAR de personalización no incluya ni haga referencia a las bibliotecas (log4j-1.x.jar) ni a las API (org.apache.log4j.*) de Log4j 1.x. El archivo Log4j 1.x ha llegado al final de su vida útil y contiene vulnerabilidades de seguridad conocidas. No se permite el uso de este marco de registro para evitar riesgos de seguridad y garantizar el cumplimiento de los estándares de registro compatibles.