¡Esta es una revisión vieja del documento!
En las aplicaciones Powerbuilder se ha implementado parte de la lógica de integración en el core ya que la version 12.5 de PB que es la que se utiliza carece de soporte API Rest.
Para poder utilizar el api-legacy y consumir los microfrontend se deben ejecutar los siguientes scripts en todos los clientes:
ALTER TABLE CONTABIL01.PARAMETROS_SISTEMA ADD (CONNECT_DB VARCHAR2(64 Byte)); ALTER TABLE PRESUP01.PARAMETROS_SISTEMA ADD (CONNECT_DB VARCHAR2(64 Byte)); ALTER TABLE TESORE01.PARAMETROS_SISTEMA ADD (CONNECT_DB VARCHAR2(64 Byte)); ALTER TABLE COMPRAS01.PARAMETROS_SISTEMA ADD (CONNECT_DB VARCHAR2(64 Byte)); ALTER TABLE TALENTO.PARAMETROS_SISTEMA ADD (CONNECT_DB VARCHAR2(64 Byte)); ALTER TABLE NOMINA.PARAMETROS_SISTEMA ADD (CONNECT_DB VARCHAR2(64 Byte)); ALTER TABLE PRESUP01.MODULOS ADD (MICROFRONTEND_URL VARCHAR2(1024 Byte)); COMMENT ON COLUMN PRESUP01.MODULOS.MICROFRONTEND_URL IS 'URL de lanzamiento de la GUI Microfrontend'; ALTER TABLE PRESUP01.MODULOS ADD (CREATED_AT DATE DEFAULT SYSDATE); COMMENT ON COLUMN PRESUP01.MODULOS.CREATED_AT IS 'Fecha de lanzamiento de la GUI Microfrontend'; ALTER TABLE PRESUP01.MODULOS ADD (ID_OPTION VARCHAR2(16 Byte)); COMMENT ON COLUMN PRESUP01.MODULOS.ID_OPTION IS 'Identificador de ruta de opción del frontend';
El flujo para autorizar los accesos desde aplicaciones legacy es:
Las aplicaciones legacy consumiran la url del microfrontend y enviarán un parámetro llamado legacyToken de tipo string.
Ejemplo consumo: http://10.1.140.21:8092/?legacyToken=674157584668526572786e5371774d4552512b3741513d3d@1aba4e1f294858f0e063658c010a6fec
El front recibe el parámetro tipo string legacyToken con el siguiente formato contextClient@uuid el cual al ser separado por el simbolo @ se obtendran 2 fragmentos.
Ejemplo: legacyToken=674157584668526572786e5371774d4552512b3741513d3d@1aba4e1f294858f0e063658c010a6fec
Se debe tomar el contextClient y desencriptarlo para identificar el cliente por medio del método decrypt-legacy-secure-token del api-legacy enviando en el parametro secureToken el contextClient recibido en el request de consumo de la aplicación legacy que hace la petición. Ejemplo:
Como se puede observar en la imagen de ejemplo el contextClient devuelve viva-dev.
Al desencriptar el conteextclient se debe consumir el método del api autenticate-microfrontend-launcher el cual puede ser consultado en la documentación de la Capa de lógica de negocio y pasar el contextClient como token en el header y el uuid como parametro.
Si el uuid está vigente se devolverán los parametros de sesión encriptados con el código 200. Lo que permitirá el acceso a la funcionalidad.
Si el uuid está vencido o es inválido se devolverá una excepcion con el código 500. Lo que evitará el acceso al microfrontend.
Al realizar la autenticación de forma correcta se obtendra un hash que contendrá los parametros de sesión pero estarán encriptados por lo tanto se debe consumir el servicio decrypt-legacy-secure-token el cual recibirá en el parámetro secureToken el hash obtenido del proceso de autenticación como se ve en la imagen.
El servicio devuelve un objeto json con la siguiente estructura.
{ "idOption": "00-00", "tituloVentana": "Maestro Terceros", "nitEmpresa": "811032187.8", "nombreEmpresa": "CAPACITACION", "codigoMempresa": "9999999999", "codigoUsuario": "3", "nombreUsuario": "ADMIN", "codigoDependencia": "9", "nombreDependencia": "AVIMA", "fechaSistemaModulo": "1/12/2022", "login": "SICOF" }
Se debe tomar de los parámetros desencriptado el idOption y consumir el servicio ecosystem-config-ws/frontend-route/api/v1/get para obtener el path del microfrontend como se ve a continuación;
De esta manera se asegura la inicialización dinámica de las rutas del frontend.