fix: [middleware] 자동산출 API에 Bearer 없이 API Key + X-TENANT-ID 접근 허용

- quotes/calculate/* 를 allowWithoutAuth 화이트리스트에 추가
- X-TENANT-ID 헤더로 tenant 컨텍스트 설정 (Bearer 토큰 없어도 동작)
- MNG 품목관리 수식 산출에서 HTTP 401 오류 해결
This commit is contained in:
김보곤
2026-03-18 14:16:20 +09:00
parent decfe57b50
commit e2ecbaf8a5

View File

@@ -115,13 +115,19 @@ public function handle(Request $request, Closure $next)
}
}
// MNG 내부 통신: X-TENANT-ID 헤더로 테넌트 컨텍스트 설정
// mng_session 토큰(InternalTokenService 발급)인 경우에만 허용
// MNG 내부 통신: X-TENANT-ID 헤더로 테넌트 컨텍스트 설정
$headerTenantId = $request->header('X-TENANT-ID');
if ($headerTenantId && $accessToken && $accessToken->name === 'mng_session') {
$overrideTenantId = (int) $headerTenantId;
$request->attributes->set('tenant_id', $overrideTenantId);
app()->instance('tenant_id', $overrideTenantId);
if ($headerTenantId && $validApiKey) {
if ($accessToken && $accessToken->name === 'mng_session') {
// Bearer 토큰(mng_session)이 있으면 테넌트 컨텍스트 재설정
$overrideTenantId = (int) $headerTenantId;
$request->attributes->set('tenant_id', $overrideTenantId);
app()->instance('tenant_id', $overrideTenantId);
} elseif (! app()->bound('tenant_id')) {
// Bearer 토큰 없이 API Key + X-TENANT-ID만 있으면 tenant 컨텍스트만 설정
$request->attributes->set('tenant_id', (int) $headerTenantId);
app()->instance('tenant_id', (int) $headerTenantId);
}
}
// 화이트리스트(인증 예외 라우트) - Bearer 토큰 없이 접근 가능
@@ -142,6 +148,7 @@ public function handle(Request $request, Closure $next)
'api/v1/items/*/files', // 품목 파일 업로드/조회
'api/v1/files/*/view', // 파일 인라인 보기 (MNG 이미지 표시)
'api/v1/files/*/download', // 파일 다운로드
'api/v1/quotes/calculate/*', // 자동산출 (MNG에서 API Key + X-TENANT-ID로 접근)
];
// 현재 라우트 확인 (경로 또는 이름)