작성
·
121
0
안녕하세요 강사님,
실전강의 관련하여 추가질문드립니다.
아래 MapBasedUrlRoleMapper쪽에서
ROLE_ 으로 시작되는 권한은 PersistentUrlRoleMapper를 통해 DB에서 불러오고 나머지는 MapBasedUrlRoleMapper를 사용해서 명시를 할 수 있을까요?
public class MapBasedUrlRoleMapper implements UrlRoleMapper{
private final LinkedHashMap<String, String> urlRoleMappings = new LinkedHashMap<>();
@Override
public Map<String, String> getUrlRoleMappings() {
urlRoleMappings.put("/", "permitAll");
urlRoleMappings.put("/css/**", "permitAll");
urlRoleMappings.put("/js/**", "permitAll");
urlRoleMappings.put("/images/**", "permitAll");
urlRoleMappings.put("/favicon.*", "permitAll");
urlRoleMappings.put("/*/icon-*", "permitAll");
urlRoleMappings.put("/signup", "permitAll");
urlRoleMappings.put("/login", "permitAll");
urlRoleMappings.put("/logout", "permitAll");
urlRoleMappings.put("/denied", "authenticated");
urlRoleMappings.put("/", "ROLE_USER");
urlRoleMappings.put("/user", "ROLE_USER");
urlRoleMappings.put("/admin/**", "ROLE_ADMIN");
urlRoleMappings.put("/manager", "ROLE_MANAGER");
urlRoleMappings.put("/db", "hasRole('DBA')");
return new HashMap<>(urlRoleMappings);
}
}
답변 1
0
네
일단 강의에서는 두개의 유형을 어떤 조건에 따라 스위칭 하도록 되어 있지는 않습니다.
이 부분은 사실 설계의 문제이고 설계에 따라 어떻게 구현할 것인지의 부분이라 질문하신 흐름을 어떻게 처리할 것인지 고민해야 할 것 같습니다.
MapBasedUrlRoleMapper 와 PersistentUrlRoleMapper 는 전략패턴처럼 사용되고 있기 때문에 ROLE_ 로 시작할 때는 PersistentUrlRoleMapper 를 넘겨주고 그외에는 MapBasedUrlRoleMapper 를 넘겨주는 식으로 할 수 있지만 ROLE_ 로 시작하는 분기문을 어떤 기준으로 가져오거나 구성할 지는 여러 가지로 고민해야 할 부분입니다.
왜냐하면 ROLE_ 접두어는 맵이든 DB 든 권한 정보에 포함되는 데이터이기 때문에 맵이나 DB 를 구분할 수 있는 기준이 가능한지부터 판단해 보아야 합니다