728x90
- 기본적으로 스프링 시큐리티에서 권한과 역할은 계층적이거나 상하 관계로 구분하지 않음
→ ROLE_ADMIN이 ROLE_USER보다 더 큰 개념이라고 인식하지 않음
→ 따라서 인증 주체가 다양한 역할과 권한을 부여 받아야 함 - RoleHirerachy는 역할 간의 계층 구조를 정의하고 관리하는 데 사용되며 보다 간편하게 역할 간의 계층 구조를 설정하고 이를 기반으로 사용자에 대한 액세스 규칙을 정의 가능
<property name="hierarchy">
<value>
ROLE_A > ROLE_B
ROLE_B > ROLE_C
ROLE_C > ROLE_D
</value>
</property>
- ROLE_A를 가진 모든 사용자는 ROLE_B, ROLE_C 및 ROLE_D도 가짐
- ROLE_B 를 가진 모든 사용자는 ROLE_C 및 ROLE_D도 가짐
- ROLE_C 를 가진 모든 사용자는 ROLE_D도 가짐
- 계층적 역할을 사용하면 액세스 규칙이 크게 줄어들 뿐만 아니라 더 간결하고 우아한 형태로 규칙을 표현 가능
구조
- setHirerachy
- 역할 계층을 설정하고 각 역할에 대해 역할의 하위 계층에 속하는 모든 역할 집합을 미리 정함
- 역할 계층 : ROLE_A > ROLE_B > ROLE_C
- 역할 계층을 설정하고 각 역할에 대해 역할의 하위 계층에 속하는 모든 역할 집합을 미리 정함
- getReachableGrantedAuthorities
- 모든 도달 가능한 권한의 배열을 반환
- 도달 가능한 권한은 직접 할당된 권한에 더해 역할 계층에서 이들로부터 도달 가능한 모든 권한을 의미
- 직접 할당된 권한 : ROLE_B
- 도달 가능한 권한 : ROLE_B, ROLE_C
728x90
'Language > Spring Security' 카테고리의 다른 글
인가 관리자 이해 - AuthorizationManager (0) | 2024.08.01 |
---|---|
인가 - Authorization (0) | 2024.08.01 |
정적 자원 관리 (0) | 2024.07.31 |
메서드 기반 권한 부여 - @Secured, JSR-250 및 부가 기능 (0) | 2024.07.31 |
메서드 기반 권한 부여 - @PreFilter, @PostFilter (0) | 2024.07.31 |