스프링 시큐리티로 접근 권한을 체크할 수 있다.
해당 권한을 체크해야 하는 액션 메서드에 붙이면 된다.
@PreAuthorize("isAuthenticated()")
@PreAuthorize("isAnonymous()")
@PreAuthorize("hasRole('ADMIN')")
그리고 스프링 시큐리티 설정을 하는 클래스에
@EnableMethodSecurity
이 어노테이션을 붙이면 된다.
유저 롤을 체크할 때는
@PreAuthorize("hasRole('ADMIN')")
이렇게 메소드마다 붙이는 대신, 스프링 시큐리티 설정 클래스의 filterChain에 등록하는 방식도 가능하다.
return http
.authorizeHttpRequests(
authorizeHttpRequests -> authorizeHttpRequests
.requestMatchers("/adm/**")
.hasRole("ADMIN")
.anyRequest()
.permitAll()
)
...
추가로 여기서 hasRole("ADMIN")
은 hasAuthority("ROLE_ADMIN")
과 같다.