Repository navigation
Commit 700dafb
잘못된 형태의 요청이 500+Slack/Sentry 알림으로 새던 문제 수정 (#254)
prod Grafana 로그 확인 결과 최근 7일간 5xx 40건이 전부 정상 앱 트래픽이
아니라 Postman 등으로 잘못된 메서드/형식을 직접 찌른 요청(GET /api/auth,
잘못된 Content-Type의 POST /api/auth)과 취약점 스캐너 프로빙(.env,
/etc/passwd 경로 접근 시도)이었다. 원래 405/415/406으로 응답해야 할
요청인데, ControllerExceptionAdvice의 범용 Exception 핸들러가 전부
500으로 뭉개고 Slack/Sentry 알림까지 매번 보내고 있었다 — 실제 장애가
아닌데 알림만 계속 쌓이는 구조.
HttpRequestMethodNotSupportedException(405)/HttpMediaTypeNotSupportedException
(415)/HttpMediaTypeNotAcceptableException(406) 전용 핸들러를 추가해
WARN 로그만 남기고 정상 상태 코드로 응답하도록 분리했다. 406은 본문(JSON)을
만들려는 시도 자체가 다시 협상 실패로 이어질 수 있어(실제 로그에서
"Failure in @ExceptionHandler" 이중 오류로 확인) 본문 없이 상태 코드만
응답한다.
MockMvc로 수정 전 실제로 500이 나고, 수정 후 405/415가 나며 Slack 알림이
호출되지 않음을 재현 테스트로 검증했다.
Co-authored-by: 나미 <dnska6657@gmail.com>1 parent d8a8775 commit 700dafb
3 files changed
Lines changed: 77 additions & 0 deletions
File tree
- src
- main/java/org/runnect/server/common
- advice
- constant
- test/java/org/runnect/server/auth/controller
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
17 | 20 | | |
18 | 21 | | |
19 | 22 | | |
| |||
66 | 69 | | |
67 | 70 | | |
68 | 71 | | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
69 | 105 | | |
70 | 106 | | |
71 | 107 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
68 | 79 | | |
69 | 80 | | |
70 | 81 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
143 | 173 | | |
0 commit comments