- Diego solicita verificar este error en la aplicación

- Primero determinamos el ambiente de producción
# Ver en qué namespaces está desplegado voto-mocion
oc get route --all-namespaces | grep voto-mocion
# Ver los namespaces disponibles
oc get namespaces | grep -iE "prod|staging|stg|main"

- Obtener los pods
# Ver los pods de producción
oc get pods -n production | grep voto-mocion
# Ver las variables de entorno del pod web de producción
oc exec -n production $(oc get pod -n production -l app=voto-mocion-web -o name | head -1) -- \
env | grep -iE "SSO|REDIRECT|CALLBACK|CLIENT|BASE_URL|UNAXT"
- Resultado
cgi@okd-provisioner-nodo01:~$ oc get pods -n production | grep voto-mocion
voto-mocion-api-deploy-7d99f9d9-68t7k 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-6v86t 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-7nd5l 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-7ngss 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-8d7sf 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-9htgx 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-flbrg 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-frmnm 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-g7gzp 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-gx8hb 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-hpk8z 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-jd94p 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-jxz5l 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-kbmhv 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-ngf5d 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-nh6sq 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-nzfh8 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-rgrpm 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-rk6jk 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-vtvkl 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-xlnm9 1/1 Running 0 27h
voto-mocion-api-deploy-7d99f9d9-zrn4k 1/1 Running 0 27h
voto-mocion-web-deploy-75fb5c9759-49jx2 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-4xsrd 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-5sn7m 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-8gn2w 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-bjf44 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-c7x8j 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-d5rxg 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-gpf59 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-hhq4g 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-kztnk 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-l5g25 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-lzfnn 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-mbrtc 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-r44p5 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-t54c2 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-t92jg 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-t9wjj 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-tdksb 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-tn5nj 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-vh9j2 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-ztxzd 1/1 Running 0 22h
voto-mocion-web-deploy-75fb5c9759-zxsx6 1/1 Running 0 22h
cgi@okd-provisioner-nodo01:~$ oc exec -n production $(oc get pod -n production -l app=voto-mocion-web -o name | head -1) -- \
env | grep -iE "SSO|REDIRECT|CALLBACK|CLIENT|BASE_URL|UNAXT"
NUXT_PUBLIC_API_BASE_URL=https://infra-web-production.una.ac.cr
NUXT_PUBLIC_UNAXT_AUTH_MODULO=233
NUXT_PUBLIC_UNAXT_AUTH_SSO_BASE_URL=https://sso.una.ac.cr
NUXT_PUBLIC_UNAXT_AUTH_SSO_CLIENT_ID=hfwXyb6jjgOUqgP0ftSaGtmQKLwa
NUXT_PUBLIC_UNAXT_AUTH_SSO_CLIENT_SECRET=WDAPDpY0muyvcMpfJ1vdToNZOVoa
- Si consultamos dev
oc exec -n develop dev-voto-mocion-web-deploy-6bf96c9bb9-8crzv -- env | grep -iE "SSO|REDIRECT|CALLBACK|CLIENT|BASE_URL|UNAXT"
NUXT_PUBLIC_UNAXT_AUTH_MODULO=233
- Resultado
NUXT_PUBLIC_UNAXT_AUTH_MODULO=233
NUXT_PUBLIC_UNAXT_AUTH_SSO_CLIENT_SECRET=WDAPDpY0muyvcMpfJ1vdToNZOVoa
NUXT_PUBLIC_UNAXT_AUTH_SSO_CLIENT_ID=hfwXyb6jjgOUqgP0ftSaGtmQKLwa
NUXT_PUBLIC_UNAXT_AUTH_SSO_BASE_URL=https://ssodesa.una.ac.cr
NUXT_PUBLIC_API_BASE_URL=https://dev-infra-web-develop.apps.okd.una.ac.cr
HALLAZGO 1
- Aunque sean ambientes diferentes se recomienda manejar id de NUXT_PUBLIC_UNAXT_AUTH_SSO_CLIENT_ID diferentes para evitar conflictos

- No es necesario solo recomendación

HALLAZGO 2
- Si se ejecuta
oc exec -n production $(oc get pod -n production -l app=voto-mocion-web -o name | head -1) -- \
env | grep -iE "SSO|REDIRECT|CALLBACK|CLIENT|BASE_URL|UNAXT"
- vemos
NUXT_PUBLIC_API_BASE_URL=https://infra-web-production.una.ac.cr
NUXT_PUBLIC_UNAXT_AUTH_MODULO=233
NUXT_PUBLIC_UNAXT_AUTH_SSO_BASE_URL=https://sso.una.ac.cr
NUXT_PUBLIC_UNAXT_AUTH_SSO_CLIENT_ID=hfwXyb6jjgOUqgP0ftSaGtmQKLwa
NUXT_PUBLIC_UNAXT_AUTH_SSO_CLIENT_SECRET=WDAPDpY0muyvcMpfJ1vdToNZOVoa

- Aqui existe un problema de seguridad y es que se esta definiendo
NUXT_PUBLIC_UNAXT_AUTH_SSO_CLIENT_SECRET
- Con el prefijo PUBLIC: lo que significa que Nuxt lo incluye en el bundle del cliente — cualquier usuario puede verlo abriendo las DevTools del navegador.
- Se recomienda definirlo como
NUXT_UNAXT_AUTH_SSO_CLIENT_SECRET
- Esto se puede corregir con
# Quitar la variable pública y agregar la privada
oc set env deployment/voto-mocion-web-deploy \
-n production \
NUXT_PUBLIC_UNAXT_AUTH_SSO_CLIENT_SECRET- \
NUXT_UNAXT_AUTH_SSO_CLIENT_SECRET=WDAPDpY0muyvcMpfJ1vdToNZOVoa
- pero implica un cambio en el código en el archivo nuxt.config.ts ya que la variable debe estar declarada en
runtimeConfigprivado:
runtimeConfig: {
// Privado — solo server side (sin PUBLIC)
unaxt: {
sso: {
clientSecret: '', // lee NUXT_UNAXT_SSO_CLIENT_SECRET
}
},
}
HALLAZGO 3
- Si consultamos las variable de prod
oc exec -n production $(oc get pod -n production -l app=voto-mocion-web -o name | head -1) -- \
env | grep -iE "SSO|REDIRECT|CALLBACK|CLIENT|BASE_URL|UNAXT"
- Se observa que las variables
- SIGN_IN_REDIRECT_URL
- SIGN_OUT_REDIRECT_URL
- No estan definidas y estas son necesarias para que WSO2 redirija de forma correcta
- actualmente dentro del contenedor se encuentra la redirección asi
"signInRedirectUrl": "/auth/sso/login"
- y esto es lo que causa la pantalla en blanco en los celulares (firefox)

- ahora dentro de https://sso.una.ac.cr/carbon/admin/login.jsp



- en esta sección actualmente esta asi
regexp=(https://proyectobase.apps.okd.una.ac.cr/auth/sso/login|https://carritocompras.apps.okd.una.ac.cr/auth/sso/login|https://votoelectronico.apps.okd.una.ac.cr/auth/sso/login|https://votomocion.una.ac.cr/auth/sso/login|https://stg-proyectobase.apps.okd.una.ac.cr/auth/sso/login|https://stg-carritocompras.apps.okd.una.ac.cr/auth/sso/login|https://stg-votoelectronico.apps.okd.una.ac.cr/auth/sso/login|https://stg-votomocion.apps.okd.una.ac.cr/auth/sso/login|https://dev-proyectobase.apps.okd.una.ac.cr/auth/sso/login|https://dev-carritocompras.apps.okd.una.ac.cr/auth/sso/login|https://dev-votoelectronico.apps.okd.una.ac.cr/auth/sso/login|https://dev-votomocion.apps.okd.una.ac.cr/auth/sso/login)
- aqui estos servicios estan dentro del mismo Service Provider de WSO2 client_id
- Y deberia ser solo los del mismo servicio no combinados

- Es decir para este servicio solo deberia estar
regexp=(
https://votomocion.una.ac.cr/auth/sso/login|
https://stg-votomocion.apps.okd.una.ac.cr/auth/sso/login|
https://dev-votomocion.apps.okd.una.ac.cr/auth/sso/login
)
- entonces para solucionarlo se puede aplicar (esto en vivo pero creo que se puede aplicar en la config y volver a desplegar)
oc set env deployment/voto-mocion-web-deploy \
-n production \
NUXT_PUBLIC_UNAXT_AUTH_SSO_SIGN_IN_REDIRECT_URL=https://votomocion.una.ac.cr/auth/sso/login \
NUXT_PUBLIC_UNAXT_AUTH_SSO_SIGN_OUT_REDIRECT_URL=https://votomocion.una.ac.cr/auth/sso/login
- Verificar que el rolling update completó
# Producción
oc rollout status deployment/voto-mocion-web-deploy -n production
# Confirmar que las variables quedaron aplicadas
oc exec -n production $(oc get pod -n production -l app=voto-mocion-web -o name | head -1) -- \
env | grep REDIRECT