forked from baron/baron-sso
worksmobile 연동 & ory stack 26.2.0으로 업그레이드
This commit is contained in:
60
test/oathkeeper_access_log_e2e_test.sh
Executable file
60
test/oathkeeper_access_log_e2e_test.sh
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
require_container() {
|
||||
local name="$1"
|
||||
if ! docker inspect "$name" >/dev/null 2>&1; then
|
||||
echo "ERROR: required container is missing: $name" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
for container in ory_oathkeeper ory_vector ory_clickhouse baron_backend; do
|
||||
require_container "$container"
|
||||
done
|
||||
|
||||
vector_state="$(docker inspect -f '{{.State.Status}}' ory_vector)"
|
||||
if [[ "$vector_state" != "running" ]]; then
|
||||
echo "ERROR: ory_vector must be running, got: $vector_state" >&2
|
||||
docker logs --tail 100 ory_vector >&2 || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
before_lines="$(docker exec ory_oathkeeper sh -lc 'test -f /var/log/oathkeeper/access.log && wc -l < /var/log/oathkeeper/access.log || echo 0')"
|
||||
before_rows="$(docker exec ory_clickhouse clickhouse-client --user "${ORY_CLICKHOUSE_USER:-ory}" --password "${ORY_CLICKHOUSE_PASSWORD:-orypass}" --query "SELECT count() FROM ory.oathkeeper_access_logs")"
|
||||
|
||||
docker run --rm --network public_net curlimages/curl:8.10.1 \
|
||||
-fsS http://ory_oathkeeper:4455/health >/dev/null
|
||||
|
||||
deadline=$((SECONDS + 20))
|
||||
after_lines="$before_lines"
|
||||
while (( SECONDS < deadline )); do
|
||||
after_lines="$(docker exec ory_oathkeeper sh -lc 'test -f /var/log/oathkeeper/access.log && wc -l < /var/log/oathkeeper/access.log || echo 0')"
|
||||
if (( after_lines > before_lines )); then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if (( after_lines <= before_lines )); then
|
||||
echo "ERROR: Oathkeeper access log did not grow after a proxied request." >&2
|
||||
docker exec ory_oathkeeper sh -lc 'ls -l /var/log/oathkeeper && tail -n 50 /var/log/oathkeeper/access.log 2>/dev/null || true' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
deadline=$((SECONDS + 30))
|
||||
after_rows="$before_rows"
|
||||
while (( SECONDS < deadline )); do
|
||||
after_rows="$(docker exec ory_clickhouse clickhouse-client --user "${ORY_CLICKHOUSE_USER:-ory}" --password "${ORY_CLICKHOUSE_PASSWORD:-orypass}" --query "SELECT count() FROM ory.oathkeeper_access_logs")"
|
||||
if (( after_rows > before_rows )); then
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
|
||||
if (( after_rows <= before_rows )); then
|
||||
echo "ERROR: Vector did not insert the new Oathkeeper access log into ClickHouse." >&2
|
||||
echo "before_rows=$before_rows after_rows=$after_rows" >&2
|
||||
docker logs --tail 100 ory_vector >&2 || true
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user