debug: show login.html response when CSRF fetch fails

This commit is contained in:
Claus Lohmar 2026-07-07 16:12:30 +01:00
parent b1004e4514
commit 90c8c57fbe

View file

@ -279,17 +279,23 @@ EOF
# First call — fresh cookie jar, retry until we get a valid CSRF # First call — fresh cookie jar, retry until we get a valid CSRF
rm -f "$COOKIE_JAR" rm -f "$COOKIE_JAR"
CSRF="" CSRF=""
for i in $(seq 1 10); do for i in $(seq 1 15); do
CSRF=$(fetch_csrf) CSRF=$(fetch_csrf)
if [ -n "$CSRF" ]; then if [ -n "$CSRF" ] && [ ${#CSRF} -gt 10 ]; then
break break
fi fi
echo " Waiting for Zoraxy to be ready... ($i/10)" echo " Waiting for Zoraxy to be ready... ($i/15)"
sleep 3 sleep 2
done done
# Try API registration first, fall back to BoltDB direct write if [ -z "$CSRF" ] || [ ${#CSRF} -lt 10 ]; then
if [ -n "$CSRF" ]; then echo " [WARN] Could not get valid CSRF — page response:"
curl -s -c "$COOKIE_JAR" http://127.0.0.1:8000/login.html | head -c 300
echo ""
fi
# Try API registration
if [ -n "$CSRF" ] && [ ${#CSRF} -gt 10 ]; then
ADMIN_CREATE=$(curl -s -c "$COOKIE_JAR" -b "$COOKIE_JAR" -X POST "http://127.0.0.1:8000/api/auth/register" \ ADMIN_CREATE=$(curl -s -c "$COOKIE_JAR" -b "$COOKIE_JAR" -X POST "http://127.0.0.1:8000/api/auth/register" \
-H "X-CSRF-Token: ${CSRF}" \ -H "X-CSRF-Token: ${CSRF}" \
-d "username=${ADMIN_USERNAME:-master}" \ -d "username=${ADMIN_USERNAME:-master}" \
@ -297,19 +303,7 @@ EOF
if echo "$ADMIN_CREATE" | grep -qi '"success"\|"ok"\|"registered'; then if echo "$ADMIN_CREATE" | grep -qi '"success"\|"ok"\|"registered'; then
echo " [OK] Admin account created: $ADMIN_USERNAME" echo " [OK] Admin account created: $ADMIN_USERNAME"
else else
echo " [INFO] API registration: $ADMIN_CREATE — trying BoltDB fallback" echo " [INFO] API registration: $ADMIN_CREATE"
CSRF="" # Force fallback
fi
fi
# BoltDB fallback: write admin directly if API failed
if [ -z "$CSRF" ] && [ -f "$TOOL_BIN" ]; then
echo " Creating admin via BoltDB..."
SYS_DB="$TARGET_DIR/data/zoraxy/sys.db"
if [ -f "$SYS_DB" ]; then
"$TOOL_BIN" db --db "$SYS_DB" \
--set "system:admin:{\"username\":\"${ADMIN_USERNAME:-master}\"}" 2>&1 || true
echo " [OK] Admin written to BoltDB"
fi fi
fi fi