Commit Graph
6 Commits
Author SHA1 Message Date
ByungCheolandClaude Opus 4.8 a9ff2387c8 feat: 무차별 대입 방지(로그인·비밀번호 게이트) + 미처리 예외 추적 강화
- 로그인/비밀번호 재인증에 실패 기반 레이트리밋(Redis 슬라이딩 윈도우)
  · 로그인 IP당 10회/10분, 비밀번호 게이트 회원당 5회/10분, 초과 시 429
  · 성공 시 실패 카운터 초기화, Redis 장애 시 통과(가용성 우선)
  · 회원가입 레이트리밋도 공통 enforceRateLimit 으로 일원화
- GlobalExceptionHandler: 미처리 500 로그에 메서드+경로 기록(추적성), 잘못된 JSON은 400
- 테스트: 레이트리밋 429 케이스 2개 추가 (백엔드 총 34)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 15:03:53 +09:00
ByungCheolandClaude Opus 4.8 4a85902183 test: 인증 컨트롤러 웹 계층 통합테스트 + 배포 게이트 DB 서비스
- AuthControllerWebMvcTest(@WebMvcTest): 실제 인터셉터·경로매핑 로드해 검증
  · 보호 경로(verify-password/profile/me) 토큰 없으면 401(500 아님)
  · 유효 토큰이면 컨트롤러 도달(CURRENT_MEMBER 주입), 공개 경로(signup-enabled) 200
  · 단위테스트가 못 잡은 인터셉터 와이어링 누락(이번 500 버그)을 잡는 계층
  · @MapperScan 매퍼는 DB 없는 경량 SqlSessionFactory로 빈 생성만 통과
- deploy.yaml: clean build 가 @SpringBootTest(SbBtApplicationTests) 포함 →
  CI와 동일한 MariaDB/Redis 서비스+env 추가
  (없으면 배포 게이트가 DB 못 붙어 실패 → 직전 게이트 변경이 배포를 깨뜨렸던 문제 수정)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 14:49:48 +09:00
ByungCheolandClaude Opus 4.8 e9a3fc82e5 fix: verify-password·profile 인터셉터 보호 경로 누락 수정
- WebConfig authInterceptor 경로에 /api/auth/verify-password, /api/auth/profile 추가
  (누락 시 CURRENT_MEMBER 미설정 → 로그인 사용자도 NPE 500)
- WebConfigTest: 인증 필수 auth 엔드포인트 보호 경로 등록 회귀 가드

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 14:14:15 +09:00
ByungCheolandClaude Opus 4.8 e592c174bf feat: 가입정보 변경·비밀번호 재인증 API + 백엔드 단위테스트·CI 게이트
- POST /auth/verify-password, PUT /auth/profile(세션 표시 이름 동기화)
- MemberMapper.updateProfile, AuthSessionMapper.updateName
- 단위테스트(24): CardNotificationParser(8), AuthService(16, Mockito)
- CI(.gitea): 테스트 리포트 아티팩트 업로드(clean build가 곧 테스트 게이트)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 14:08:01 +09:00
ByungCheolandClaude Opus 4.8 2a2f81dc32 feat: 가계부·게시판 백엔드 API 구현
- com.sb.web 패키지로 재구성: account / auth / board / user / admin / common
- 가계부(account): 내역(필터), 계좌·순자산, 예산, 분류, 정기 거래, 투자 포트폴리오
  (종목·매매 이력, 이동평균 평단·실현/평가손익)
- MyBatis + MariaDB + Redis 세션, BCrypt
- 스키마 자동 초기화(db/*.sql, 멱등), 사용자별 데이터 격리(member_id)
- 문서: docs/BACKEND.md, .env.example

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 15:43:09 +09:00
ByungCheol 9243a41385 @
Initial commit: SB 백엔드 (Spring Boot + MyBatis)

- 사용자 CRUD REST API (/api/users)
- MariaDB(MyBatis) + Redis 캐싱 구성
- CORS 설정 및 헬스 체크 엔드포인트

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
2026-05-30 21:18:35 +09:00