Files
RustProxy/docs/MOCK_AUTH.md
T
2026-10-03 00:27:09 +01:00

1.7 KiB

Fake Tinyauth protocol peer - local development only

This is NOT authentication. Any client can mint the allow cookie. The fixture binds only to 127.0.0.1 and must never protect a production application.

bash dev.sh mock --port 9001 --name origin-a --ttl 30
# Separate terminal:
bash dev.sh mock-auth --port 9300

In a disposable vhost's Authentication tab, set:

Use your actual frontend address/hostname. Example for a local plain-HTTP vhost:

# Denied -> 302 to configured login, no application request:
curl -i -H 'Host: app.localhost' http://127.0.0.2:8181/inspect
# Allowed -> app receives mock-user / mock@example.test; cache remains BYPASS:
curl -i -H 'Host: app.localhost' -H 'Cookie: mock_auth=allow' http://127.0.0.2:8181/inspect
# Force authentication failure even with an allow cookie:
curl -X POST -H 'Content-Type: application/json' -d '{"status":503}' http://127.0.0.1:9300/control
# Simulate slow verifier; choose less than or greater than the vhost total timeout:
curl -X POST -H 'Content-Type: application/json' -d '{"delay_ms":12000}' http://127.0.0.1:9300/control
# Restore default deny/allow behavior:
curl -X POST -H 'Content-Type: application/json' -d '{"reset":true}' http://127.0.0.1:9300/control
curl http://127.0.0.1:9300/state

/control replaces status/delay/redirect behavior (omitted values reset to defaults). Optional location sets X-Tinyauth-Location for redirect-policy tests. /state exposes only the last 16 metadata records, not Authorization, cookies or query strings. Real Rust-router auth tests are in tests/integrations.rs.