feat: 비밀번호 재설정 SMTP 메일 발송 연결 - #106
Merged
Merged
Conversation
기본 NoOp과 실제 SMTP Adapter를 설정으로 전환할 수 있게 구성했습니다. 재설정 링크와 만료시각을 메일로 전달하고 안전하지 않은 설정을 차단하며, 발송 내용과 Provider 선택을 테스트합니다.
로컬 Compose와 배포 Secret에서 실제 메일 Provider를 활성화하는 환경변수, timeout, 재설정 메일 수신 Smoke 절차를 정리했습니다. 기본 설정은 메일을 보내지 않는 none으로 유지합니다.
Contributor
Author
|
client 연결 확정은 아마 해주실겁니다 그때 fix할게요 |
hywznn
marked this pull request as ready for review
August 7, 2026 05:08
krestar
approved these changes
Aug 7, 2026
krestar
left a comment
Contributor
There was a problem hiding this comment.
요구사항에 맞게 잘 작성된 것 같고, Teams 상에서 공유된 정상 작동 검증이랑 CI 통과까지 확인했습니다!
Member
BcKmini
approved these changes
Aug 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
왜 필요한가요?
PR #100으로 비밀번호 재설정 token 발급·검증은 구현됐지만, 기본 NoOp Adapter가 메일을 실제로 전달하지 않아 사용자가 재설정 링크를 받을 수 없었습니다.
Closes #55
무엇이 바뀌나요?
PasswordResetNotificationPort의 SMTP Adapter를 추가했습니다.none | smtp설정으로 NoOp과 SMTP 구현을 선택합니다.202 Accepted응답을 깨지 않게 합니다.none이므로 메일 설정이 없는 local/test 환경의 동작은 그대로 유지됩니다.API·DB 영향
POST /api/v1/auth/password-reset-requestsPOST /api/v1/auth/password-resets보안
검증
smtp설정에서 SMTP Adapter가 선택되는 Spring Context 테스트./gradlew clean test— BUILD SUCCESSFULdocker compose -f compose.demo.yml config --quiet연동 시 필요한 값
PASSWORD_RESET_NOTIFICATION_PROVIDER=smtpPASSWORD_RESET_CLIENT_URLPASSWORD_RESET_MAIL_FROMSPRING_MAIL_HOST,SPRING_MAIL_PORTSPRING_MAIL_USERNAME,SPRING_MAIL_PASSWORD실제 SMTP 계정과 Client의
/reset-password?token=...처리 연결 후 마지막 E2E를 수행합니다.