ADR-007 B2B 등록 경유 = 인증 계층 pass-through + 기존 엔드포인트 재사용

  • 상태: 채택
  • 날짜: 2026-07-03
  • 근거: PRD FR-4/FR-5 / TDD “Possible Solutions 방안 A” / 선행 [ADR-003 goods·ticketing 제공 인터페이스 = UseCase 경계](../../도메인 경계 재설계/ADR/ADR-003 goods·ticketing 제공 인터페이스 = UseCase 경계.md)

맥락

Partner가 상품·티켓 등록을 “기존 UseCase를 코드 변경 없이 그대로 호출”한다(ADR-003 시그니처 동결). 이 “경유”를 어떻게 실현할지 — 신규 파트너 컨트롤러/UseCase를 만들지, 기존 엔드포인트를 재사용할지 결정이 필요하다.

결정

경유는 전적으로 인증 계층 pass-through로 실현하고, Partner는 기존 등록 엔드포인트를 재사용한다.

  • PartnerApiKeyAuthenticationFilter가 API Key 검증 후 연동 전용 User principal(roles: GOODS_SELLER·EVENT_HOST)을 SecurityContext에 주입.
  • Partner는 기존 /api/goods-seller/products·/api/event-host/events를 그대로 호출 → 컨트롤러·UseCase 코드 무변경.
  • /api/goods-seller/**·/api/event-host/**는 이미 authenticated()(SecurityConfig.kt:62-64) → 재사용 엔드포인트는 SecurityConfig 변경도 불필요.

근거

  1. PRD FR-4/FR-5가 “경유 접점 = 인증 계층”으로 명시. 실제 소비 지점은 UseCase(ADR-003).
  2. EventHostApiController.createEvent는 이미 ownershipGuard.authUserId()toCommand(authUserId) 구조 → principal만 채우면 무변경 동작.
  3. Partner 도메인이 코어를 동기 호출하지 않아 ADR-002 rule #4(지원→코어 동기 금지) 준수.
  4. 신규 컨트롤러/UseCase 0개 — 가장 단순(단순함 우선).

대안 (미채택)

  • 파트너 전용 등록 컨트롤러 신설 (/api/partner/products → CreateMyProductUseCase): presentation/partner→application/goods 교차 결합 신설, 코드 추가. A 대비 이득 없음.
  • 파트너 전용 등록 UseCase: 등록 로직 중복 — PRD·ADR-003 명시 금지.

영향

  • Partner용 등록 API 계약 = 기존 엔드포인트(TDD “API 계약 A”에 문서화, 후속 참조).
  • 신규 코드는 partner 도메인 + 인증 필터 + 운영자 관리 API에 한정. goods/ticketing/user 도메인 코드 변경 0건.