Files
keycloak-pattern/docs/evidence/b1-redis-session-store/README.md
T
DongHyeonkaandClaude Opus 5 e0d27d47ce docs: correct the places where documents contradicted their own evidence
An independent audit found ten documents printing values their evidence files do not contain. C-1 printed a session count of 0 where the evidence says 4, C-2 printed a success readback for a command that exited 1, and A-1 credited the conntrack flush with a split that the timestamps attribute to a pod restart four seconds earlier.

Also measured wal_writer_delay, which A-3 had asserted as matching without ever querying it, relabelled the A-6 control that moved 41 percent, noted A-8's nine-sample resolution, corrected D-1's RTO to the 41 seconds its own timeline shows, and added a correction banner to D-2. Every experiment document now links its evidence files with their real collection times, and the duplicate screenshots are documented as duplicates.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 16:35:49 +09:00

1.7 KiB
Raw Blame History

B-1 — Redis 세션 저장소 전환 증거

2026-09-04 14:5015:05 KST 해설: docs/experiment-b1-redis-session-store.md

파일 무엇을 보여주는가
01-servicelinks-trap.txt enableServiceLinks: false 적용 후 롤아웃 성공 — 쿠버네티스가 주입한 REDIS_PORT=tcp://... 가 설정을 덮어쓴 문제
02-autoconfig-after.txt 핵심 — 빈 321→402(+81). sessionRepository → RedisSessionRepository 로 바뀌었지만 authorizedClientServiceInMemory 그대로
03-redis-contents.txt Redis 키 1개, 필드는 SPRING_SECURITY_CONTEXT 뿐. 토큰 없음. Java 직렬화(\xac\xed), TTL 1772초
b1-login-works-two-replicas.png 전환 직후 accessTokenStoredOnServer: false
b1-token-boundary-after-redis.png 파드 전면 교체 후 — principal: labuser 는 살아남고 토큰만 사라진 상태

핵심 세 줄

  1. 세션은 옮겨졌고 토큰은 안 옮겨졌다. 빈 81개가 늘었는데 authorized client 관련은 하나도 안 바뀌었다.
  2. refresh token 은 Redis 에 평문으로 있는 게 아니라 아예 없다. 암호화를 고민하기 전에 이걸 알아야 한다.
  3. "로그인은 되어 있는데 아무것도 못 하는" 상태가 만들어진다 — 완전 로그아웃보다 나쁘다.

스크린샷 주의

b1-login-works-two-replicas.pngb1-token-boundary-after-redis.png동일 파일이며 b2-before-relogin.png 와도 같다 (md5 6de826a7…). 세 시점 모두 accessTokenStoredOnServer: false 인 같은 화면이었다. 시점 구별은 터미널 출력과 Redis/DB 조회가 한다.