728x90

- 기존에는 단순 String 권한만 있다면 권한이 있다고, 판단하였다(계층 적용 X)
-
RoleHierarchy
-
상위 계층 Role은 하위 계층 Role의 자원에 접근 가능함
-
ROLE_ADMIN > ROLE_MANAGER > ROLE_USER 일 경우 ROLE_ADMIN 만 있으면 하위 ROLE ROLE의 권한을 모두 포함한다
-
-
RoleHierarchyVoter
-
RoleHierarchy를생성자로 받으며 이 클래스에서 설정한 규칙이 적용되어 심사함
-

RoleHierarchy -
ROLE_HIERARCHY 테이블 데이터 추가@Transactional public void createRoleHierarchyIfNotFound(Role childRole, Role parentRole) { RoleHierarchy roleHierarchy = roleHierarchyRepository.findByChildName(parentRole.getRoleName()); if (roleHierarchy == null) { roleHierarchy = RoleHierarchy.builder() .childName(parentRole.getRoleName()) .build(); } RoleHierarchy parentRoleHierarchy = roleHierarchyRepository.save(roleHierarchy); roleHierarchy = roleHierarchyRepository.findByChildName(childRole.getRoleName()); if (roleHierarchy == null) { roleHierarchy = RoleHierarchy.builder() .childName(childRole.getRoleName()) .build(); } RoleHierarchy childRoleHierarchy = roleHierarchyRepository.save(roleHierarchy); childRoleHierarchy.setParentName(parentRoleHierarchy); } - Application Loading 시점에 Role_Hierarchy를 넣어준다.


권한을 조회하여 ROLE_HIERARCHY를 STring 형식으로 변환
728x90
'스프링 시큐리티 > 실전프로젝트 - 인가 프로세스 DB 연동 웹 계층 구현' 카테고리의 다른 글
| ch09. 아이피 접속 제한하기 - CustomIpAddressVoter (0) | 2022.01.25 |
|---|---|
| ch07. 인가처리 허용 필터 - PermitAllFilter 구현 (0) | 2022.01.24 |
| ch06. 웹 기반 인가처리 실시간 반영하기 (0) | 2022.01.24 |
| ch05. 웹 기반 인가처리 DB 연동 - FilterInvocationSecurityMetadataSource (2) (0) | 2022.01.24 |
| ch04. 웹 기반 인가처리 DB 연동 - FilterInvocationSecurityMetadataSource (1) (0) | 2022.01.24 |