Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • I intern-homework-was
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • mingyeong.cha
  • intern-homework-was
  • Issues
  • #2
Closed
Open
Issue created Sep 14, 2026 by mingyeong.cha@mingyeong.chaOwner

[feat] HTTP Basic 인증, 내 정보 조회

name: Feature Request
labels: 'Type : Feature'

기능 요약

HTTP Basic 인증 및 내 정보 조회 API (/api/me)

상세 설명

  • DB 사용자 기반 HTTP Basic 로그인 (DbUserDetailsService)
    • 로그인 ID는 이메일(citext, 대소문자 무시)
    • 비밀번호는 BCrypt 해시로만 저장
    • 탈퇴한(soft delete) 사용자는 인증에서 제외
  • 내 정보 조회 API GET /api/me
    • 응답: userId, email, displayName, 소속 팀별 역할 목록 teams[{teamId, name, role}]
    • 소속 팀이 없으면 빈 배열
  • 팀 엔티티·리포지토리 추가 (Team, TeamMember 복합 PK, TeamRole: OWNER/MEMBER). /api/me의 팀 역할 조회에 필요
  • dev 시드 데이터: 사용자 4명(alice·bob·carol·dave, 비밀번호 password), 팀 2개(team-a, team-b)
  • Swagger me 태그: 응답 필드 userId, role enum 설명
  • 인증 테스트(AuthTest) 통과: 미인증 401(problem+json), 잘못된 비밀번호 401, BCrypt 저장, 팀별 역할 조회

참고 자료

  • [이메일 citext]이메일 citext
  • soft delete vs hard delete image
  • UserDetailsService
  • ApplicationRunner
  • CreationTimestamp vs CreatedData 하이버네이트 전용 어노테이션(예:org.hibernate.annotations 패키지의 기능)을 자제하는 주된 이유는 표준 JPA와의 호환성 저하와 벤더 종속성 때문입니다.
  • JPA Auditing
  • EntityListeners
Edited Sep 15, 2026 by mingyeong.cha
Assignee
Assign to
Time tracking