etc/TIL

authentication.getAuthorities()에서 권한 여부 확인하는 방법

기억용블로그 2022. 5. 19. 23:25
728x90
if (authentication.getAuthorities().contains(new SimpleGrantedAuthority("ROLE_ADMIN"))) {
    redirectStrategy.sendRedirect(request, response, "/admin");
}

예를 들어 위와 같이 authorization이 성공한 상황에서 Authentication 객체에서 권한을 가지고 있는지 여부를 알고싶으면 위와 같이 작성한다.

 

여기서 핵심은 "ROLE_ADMIN"을 contains 하고 있는지 확인하는 것이 아닌

new SimpleGrantedAuthority("ROLE_ADMIN")을 확인하는 것이다.

SimpleGrantedAuthority는 GrantedAuthority의 이미 만들어져 있는 구현체로 String role을 받는 생성자와 String role의 getter가 준비되어있다.