docs: add 51124 signature handling fix and deployment verification
This commit is contained in:
parent
942981df54
commit
aacc365598
@ -2,7 +2,7 @@
|
||||
|
||||
**작성일**: 2026-02-27
|
||||
**작성자**: Codex
|
||||
**상태**: 진행 중 (부분 해결)
|
||||
**상태**: 진행 중 (핵심 버그 2건 반영 완료, 최종 모니터링 필요)
|
||||
|
||||
## 문제 요약
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
2. **2순위**: `gateway /slack/events` 본문 재직렬화(`json=`)로 인한 서명 불일치 가능성
|
||||
3. **보조 요인 아님**: DB/환경변수 변경은 이번 트리거 직접 증거가 약함
|
||||
|
||||
## 이번에 반영된 수정 (51123만)
|
||||
## 이번에 반영된 수정 (51123)
|
||||
|
||||
### A. 헤더 전달 보강
|
||||
- `X-Slack-Signature`, `X-Slack-Request-Timestamp` 전달
|
||||
@ -56,15 +56,37 @@
|
||||
- `Content-Type` 전달 추가
|
||||
- 커밋: `12c06ca` (`fix(slack): preserve raw event body for signature verification`)
|
||||
|
||||
## 아직 남은 조치 (미해결 항목)
|
||||
## 이번에 반영된 수정 (51124, Codex)
|
||||
|
||||
1. **rb8001에서 403을 500으로 바꾸지 않도록 예외 분기 수정 필요**
|
||||
- `except HTTPException as e: raise e` 또는 동등한 분기 필요
|
||||
- 현재는 이 미조치로 인증 실패가 계속 500으로 관측됨
|
||||
### C. timestamp 파싱 가드 추가
|
||||
- 파일: `rb8001/app/router/slack_endpoint.py`
|
||||
- 변경: `timestamp` 빈값/비정상값(`''`, non-numeric)에서 `float()` 예외가 나지 않도록 방어
|
||||
- 커밋: `c1321a7` (`fix(slack): guard invalid slack timestamp parsing`)
|
||||
|
||||
2. **실유입 기준 최종 검증**
|
||||
- 기대 결과: 인증 실패면 `403`, 정상 서명이면 `200`
|
||||
- 더 이상 `/gateway/slack/events`에서 일괄 `500`이 나오지 않아야 함
|
||||
### D. 403 -> 500 재매핑 제거
|
||||
- 파일: `rb8001/app/router/slack_endpoint.py`
|
||||
- 변경: `except HTTPException: raise` 분기 추가로 인증 실패 상태코드(403) 보존
|
||||
- 커밋: `b19abbd` (`fix(slack): preserve HTTP status for signature failures`)
|
||||
|
||||
## 51124 배포/검증 결과 (2026-02-27)
|
||||
|
||||
1. **자동배포 반영 확인**
|
||||
- `git push origin main` 후 `docker ps`에서 `rb8001` 재시작 확인 (`Up 52 seconds (healthy)` 시점 확인)
|
||||
- `curl http://localhost:8001/health` → `200`
|
||||
|
||||
2. **상태코드 동작 확인**
|
||||
- 무서명 테스트 요청: `POST /api/slack/events` → `403 {"detail":"Invalid signature"}`
|
||||
- 기존처럼 `500`으로 재매핑되지 않음
|
||||
|
||||
3. **실유입 로그 확인**
|
||||
- `docker logs rb8001` 최근 구간에서 `192.168.219.45 -> POST /api/slack/events`가 `200 OK` 다건 확인
|
||||
- `could not convert string to float` 및 `/api/slack/events 500` 재발 로그 미확인
|
||||
|
||||
## 아직 남은 조치 (최종 운영 확인)
|
||||
|
||||
1. **서명 검증 안정화 최종 모니터링**
|
||||
- `/gateway/slack/events` 실유입 기준으로 200/403 분포를 24시간 관찰
|
||||
- 재발 시 게이트웨이 원문 body 전달(`content=raw_body`) 경로와 nginx 로그를 시각 동기화해 재검증
|
||||
|
||||
## 관련 파일
|
||||
|
||||
@ -73,4 +95,3 @@
|
||||
- `rb8001/app/router/slack_endpoint.py`
|
||||
- `/var/log/nginx/access.json`
|
||||
- `/mnt/hdd/logs/51124-server/rb8001/rb8001.log`
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user