es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Servicio web REST ejecutando un script de QSHELL.

Tengo un servicio web REST que ejecuta un programa RPG, como necesito encriptar algunos datos usando Openssl he creado un script de shell que recibe los datos a través de variables de entorno y envía los datos en áreas de datos.

Rest_RPG llama a un CLP que ejecuta el script qsh y recupera los datos del área de datos. Si ejecuto el clp de forma interactiva funciona perfectamente y recupera los datos del área de datos, pero cuando se llama desde el servicio web REST no recupera nada, he dado autoridad a QTMHHTTP y QTMHHTP1 a QGPL y no hay suerte, ¿alguna idea?

Script:
print -nr $PASS | openssl enc -aes-128-ecb -K $KEY_HEX -nosalt -base64 | datarea -wl $DTAPASS

CLP:
CRTDTAARA DTAARA(QGPL/DTAPASS) TYPE(CHAR) LEN(512) AUT(ALL)
ADDENVVAR ENVVAR(PASS) VALUE(&PPASS) CCSID(JOB) REPLACE(YES)
qsh(‘/tmp/script.sh’)
RTVDTAARA DTAARAQGPL/DTAPASS) RTNVAR(&ENC_PASS)

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la configuración de autoridad. Aunque hayas otorgado autoridad a QTMHHTTP y QTMHHTTP1, es posible que el servicio web REST se esté ejecutando bajo un perfil de usuario distinto o con un nivel de autoridad diferente.

    Puedes intentar otorgar autoridad *PUBLIC al área de datos QGPL/DTAPASS y dar propiedad del área de datos al perfil de usuario QTMHHTTP. También puedes intentar ejecutar el servicio web REST bajo el perfil de usuario QTMHHTTP para ver si se soluciona el problema.

    También es posible que las variables de entorno no se estén pasando correctamente al script qsh cuando se llama desde el servicio web REST. Puedes intentar usar el comando WRKENVVAR para verificar los valores de las variables de entorno cuando el script se ejecuta en el contexto del servicio web REST.

    Otra posibilidad es que el script de shell no se esté ejecutando correctamente cuando se llama desde el servicio web REST. Puedes intentar agregar algunas declaraciones de depuración o registro al script de shell para ver si se está ejecutando correctamente y si los datos se están recibiendo y enviando al área de datos correctamente.

    En general, solucionar este problema requerirá algo de prueba y error y una inspección cuidadosa de la configuración de autoridad, las variables de entorno y la ejecución del script.

Comments are closed.