RBAC Decision

RBAC는 역할 이름보다 metadata를 읽는 Guard의 판정 규칙이 핵심이다

@Roles 데코레이터, Reflector, RolesGuard를 연결해 라우트 요구 권한과 request.user.roles 사이의 비교 기준을 명시합니다.

Metadata

요구 역할

@Roles("admin") 같은 handler metadata는 controller 기본값과 handler override 규칙을 함께 봅니다.

Reflector

메타데이터 조회

Reflector.getAllAndOverride로 handler와 class의 권한 정보를 우선순위 있게 읽습니다.

Guard

접근 판정

RolesGuard.canActivate는 인증된 사용자 roles와 요구 roles의 교집합을 검사합니다.

Owner

소유자 규칙

본인 리소스 수정처럼 role만으로 부족한 경우 policy guard나 service 검증을 추가합니다.