## 💚 어떤 기능인가요? SecurityConfig 의 화이트리스트가 **존재하지 않는 경로**를 가리킨다. ```java .requestMatchers("/users/send-code", "/users/verify-code", "/users/verify").permitAll() ``` 실제 매핑은 `AuthController` 의 `/auth/*` 다. | 선언된 경로 | 실제 경로 | |---|---| | `POST /users/send-code` | `POST /auth/send-code` | | `POST /users/verify-code` | `POST /auth/verify-code` | | `GET /users/verify` | `GET /auth/verify` | `/auth/*` 는 `anyRequest().authenticated()` 에 걸리므로: - 가입 전 인증코드 발송 → **401** - 메일로 받은 인증 링크 클릭 → **401** 즉 **"가입하려면 먼저 로그인해야" 하는** 상태다. `EmailVerificationService` 가 만드는 인증 링크 자체도 `/users/verify` 를 가리키고 있어 양쪽이 같이 틀렸다. `AccessControlContractTest` 가 이 세 경로를 다루지 않아 잡히지 않았다. ## ✅ To Dos - [ ] 화이트리스트를 실제 매핑(`/auth/*`)에 맞춤 - [ ] 인증 메일의 링크 경로를 `/auth/verify` 로 교정 - [ ] 가입 흐름 POST 경로가 비로그인으로 열리는지 계약 테스트에 추가
Activity