diff --git a/backend/nginx/cambiar-entrada.sh b/backend/nginx/cambiar-entrada.sh index b3a9a0f..de441ce 100755 --- a/backend/nginx/cambiar-entrada.sh +++ b/backend/nginx/cambiar-entrada.sh @@ -33,6 +33,9 @@ probar_backend() { prueba "standup cargado" '"ok":true' "curl -s -H 'X-Remote-User: vigia' http://127.0.0.1:8081/api/standup/estado" } cookie_de_prueba() { # sesión de 5 minutos para leo, firmada con el secreto del servicio (sin contraseña) + # El servicio crea su secreto la primera vez que firma o revisa una cookie; en el primer despliegue aún no existe + # (27-oct: por eso fallaron las 3 pruebas «con sesión»). Una cookie falsa «vigente» lo obliga a crearlo (responde 401). + [ -s "$DATOS/.sesion-secreto" ] || curl -s -o /dev/null --max-time 5 -b 'hbox_sesion=x~9999999999~x~x' http://127.0.0.1:8081/api/_auth python3 - "$DATOS/.sesion-secreto" "$HTP" <<'PY' import sys, time, hmac, hashlib sec = open(sys.argv[1]).read().strip().encode() @@ -54,6 +57,9 @@ probar_nginx() { prueba "entrar con contraseña mala → 401" '"codigo":"' "$C -H 'Content-Type: application/json' -d '{\"usuario\":\"vigia-prueba\",\"password\":\"x\"}' https://$HOST/api/entrar" prueba "curl -u (Basic) ya no entra" '"sesion":false' "$C -A curl -u leo:x https://$HOST/api/whoami" local CK; CK="$(cookie_de_prueba 2>/dev/null)" + if [[ ! "$CK" =~ ^leo~[0-9]+~[0-9a-f]{12}~[0-9a-f]{40}$ ]]; then + mal=$((mal+1)); echo " ✕ no pude armar la sesión de prueba de leo: ¿existe $DATOS/.sesion-secreto? ¿está leo en $HTP?" + fi prueba "con sesión: /api/whoami = leo" '"user":"leo"' "$C -b hbox_sesion=$CK https://$HOST/api/whoami" prueba "con sesión: la página abre (200)" "200" "$C -b hbox_sesion=$CK -o /dev/null -w '%{http_code}' https://$HOST/tableros/pendientes/" prueba "POST desde otro sitio → 403" "otro sitio" "$C -b hbox_sesion=$CK -H 'Origin: https://malo.example' -H 'Content-Type: application/json' -d '{}' https://$HOST/api/incidencias"