Disabling persistent-user-sessions moves the session from PostgreSQL into the cluster, and the A-1 and A-8 outcomes flip to 400 Session not active while a new login during database loss starts working. The control group in each case still returns 200, so the injections cut only what they were meant to cut. This is the pair that makes the A layer legible: the conventional wisdom that sessions ride TCP 7800 is correct for Keycloak 24 and earlier, and the mistake is applying it to 26 without checking the version. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
22 lines
978 B
Plaintext
22 lines
978 B
Plaintext
=== [A-1 재실행] volatile 에서 7800 을 막으면 ===
|
|
keycloak-0=10.42.1.99 keycloak-1=10.42.0.46
|
|
[대조군] 차단 전 교차 노드 refresh
|
|
keycloak-1 에서 refresh HTTP 200
|
|
|
|
차단 적용 (A-5 에서 확인한 raw 테이블 방식, 양방향)
|
|
분단이 성립할 때까지 대기...
|
|
+25초 cluster_size(k0 k1) = [2.0 2.0 ]
|
|
+50초 cluster_size(k0 k1) = [1.0 ]
|
|
+75초 cluster_size(k0 k1) = [1.0 ]
|
|
+100초 cluster_size(k0 k1) = []
|
|
+125초 cluster_size(k0 k1) = [1.0 ]
|
|
+150초 cluster_size(k0 k1) = [1.0 ]
|
|
+175초 cluster_size(k0 k1) = [1.0 ]
|
|
+200초 cluster_size(k0 k1) = []
|
|
|
|
=== ★ 분단 상태에서 교차 노드 세션 (persistent 였을 때는 200) ===
|
|
keycloak-0 로그인 → keycloak-0 에서 refresh HTTP 200 ← 대조군
|
|
keycloak-0 로그인 → keycloak-1 에서 refresh HTTP 400 ← 시험군
|
|
--- 시험군 오류 본문 ---
|
|
{"error":"invalid_grant","error_description":"Session not active"}
|