Files

38 lines
1.2 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# Une requête bloquée doit apparaître dans /var/log/nginx/maintenance.log
# avec l'IP du client, et NE DOIT PAS y apparaître en mode passant.
set -euo pipefail
# shellcheck source-path=SCRIPTDIR
# shellcheck source=../lib.sh
source "$(dirname "$0")/../lib.sh"
# Scénario bloqué (whitelist sans l'IP du client)
restart_proxy whitelist "10.99.99.99"
# Vide le log avant le test pour partir d'un état connu
proxy_exec sh -c ': > /var/log/nginx/maintenance.log'
# Génère une requête bloquée
status="$(curl_status)"
assert_eq "503" "$status" "code HTTP attendu"
# Petit délai pour laisser Nginx flusher le log
sleep 1
log_content="$(proxy_exec cat /var/log/nginx/maintenance.log)"
assert_contains "172.28.5.50" "$log_content" "IP du client dans maintenance.log"
# Vérifie qu'une requête passante (mode blacklist sans IP du client) ne logge PAS
restart_proxy blacklist "10.99.99.99"
proxy_exec sh -c ': > /var/log/nginx/maintenance.log'
status="$(curl_status)"
assert_eq "200" "$status" "code HTTP en mode passant"
sleep 1
log_after_pass="$(proxy_exec cat /var/log/nginx/maintenance.log)"
if [[ -n "$log_after_pass" ]]; then
t_fail "maintenance.log devrait être vide après une requête non bloquée, contient : $log_after_pass"
fi