Projects/HubEleven

[리팩토링] 권한 별 기능 제한 로직 구현 (1) (업데이트 중..)

annovation 2026. 1. 7. 23:15

권한 관리

💡상품 (Product) 도메인 권한

 

💡주문 (Order) 도메인 권한


권한 로직

💡Controller

@PostMapping
public ResponseEntity<ApiResponse<HubResponseDto>> createHub(
        @Valid @RequestBody HubCreateRequestDto request,
        @RequestHeader("X-User-Id") Long userId,
        @RequestHeader("X-User-Role") String userRole,
        @RequestHeader("X-Username") String userNameString) {
    if (!"MASTER".equalsIgnoreCase(userRole)) {
        throw new GlobalException(HubErrorCode.MASTER_ONLY);
    }
    CreateHubCommand command = request.toCommand(userId);
    HubResult result = hubService.createHub(command);
    HubResponseDto response = HubResponseDto.from(result);
    return ApiResponseEntity.success(response);
}

 

💡전체 실행 흐름

 

1. 클라이언트가 HTTP 요청 보냄

  • POST /hubs (예시)
  • Body
    • HubCreateRequestDto에 매핑될 JSON
  • Headers
    • X-User-Id : 123
    • X-User-Role : MASTER
    • X-Username : sati
  • 여기서 핵심은, 이 헤더들은 Spring이 자동으로 꺼내서 파라미터에 주입한다는 점

2. 스프링이 매핑되는 컨트롤러 메서드 찾음

  • @PostMapping이 붙은 메서드가 해당 경로/HTTP 메서드와 매칭되면 실행 대상으로 선택됨

참고 자료

https://github.com/ElevenHub/HubEleven/pull/89/files?diff=split&w=0

 

[refactor] 허브(Hub) 권한 및 userId 연결 by hinoyat · Pull Request #89 · ElevenHub/HubEleven

#️⃣연관된 이슈 #88 🪄작업 내용 gateway에서 받아온 사용자 정보 사용하도록 리팩토링 했습니다.

github.com