728x90

- UrlResourcesMapFactoryBean
- DB로부터 얻은 권한/자원 정보를 ResurceMap을 빈으로 생성해서 UrlFilterInvocationSecurityMetadataSource에 전달
-
//DB로 부터 값을 읽어와 자원과 메핑된 정보를 가지고 있어야한다. public class UrlResourcesMapFactoryBean implements FactoryBean<LinkedHashMap<RequestMatcher, List<ConfigAttribute>>> { private SecurityResourceService securityResourceService; private LinkedHashMap<RequestMatcher, List<ConfigAttribute>> resourcesMap; public void setSecurityResourceService(SecurityResourceService securityResourceService) { this.securityResourceService = securityResourceService; } @Override public LinkedHashMap<RequestMatcher, List<ConfigAttribute>> getObject() throws Exception { //securityResourceService가 Map을 만들어 resourcesMap에 넣어줄 것이다 if(resourcesMap == null){ //생성해 주어야한다. init(); } return resourcesMap; } private void init() { //DB로 부터 메핑된 자원을 얻는다 resourcesMap = securityResourceService.getResourceList(); } @Override public Class<?> getObjectType() { return LinkedHashMap.class; } @Override public boolean isSingleton() { return FactoryBean.super.isSingleton(); } } - 싱글톤 형태로 초기에 설정한 저장된 값을 가지고 있는다.
- MetaDataSource의 생성자로 내가 만든 FactoryBean을 전달

생성자로 내가 만든 FactoryBean 전달 
MetaDataSource의 생성자 
DB와 연동된 Repository를 주입해 준다.
728x90
'스프링 시큐리티 > 실전프로젝트 - 인가 프로세스 DB 연동 웹 계층 구현' 카테고리의 다른 글
| ch07. 인가처리 허용 필터 - PermitAllFilter 구현 (0) | 2022.01.24 |
|---|---|
| ch06. 웹 기반 인가처리 실시간 반영하기 (0) | 2022.01.24 |
| ch04. 웹 기반 인가처리 DB 연동 - FilterInvocationSecurityMetadataSource (1) (0) | 2022.01.24 |
| ch03. 웹 기반 인가처리 DB 연동 - 주요 아키텍처 이해 (0) | 2022.01.24 |
| ch02. 관리자 시스템 - 권한 도메인, 서비스, 리포지토리 구성 (0) | 2022.01.23 |