cambiar-entrada.sh: crear el secreto de sesión antes de la prueba con cookie
En el primer despliegue (27-oct) el servicio todavía no había creado /srv/projects/drogheda/.sesion-secreto (lo crea la primera vez que firma o revisa una cookie), la cookie de prueba salió vacía y las 3 pruebas «con sesión» fallaron; nginx regresó solo al anterior. Ahora la prueba obliga al servicio a crearlo y, si aun así no hay cookie válida, lo dice con claridad. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SfRSvDd335NPYEbBrDFGE
This commit is contained in:
parent
78b8fb9cff
commit
866eb4eb82
@ -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"
|
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)
|
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'
|
python3 - "$DATOS/.sesion-secreto" "$HTP" <<'PY'
|
||||||
import sys, time, hmac, hashlib
|
import sys, time, hmac, hashlib
|
||||||
sec = open(sys.argv[1]).read().strip().encode()
|
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 "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"
|
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)"
|
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: /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 "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"
|
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"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user