해당 메서드가 호출되기전에 권한 (roles, authorities) 조건을 검사
동작방식
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig{
//...
}
@PreAuthorize 는 메서드 실행 직전에 SpEL(Spring Expression Language)로 조건식을 평가함
“hasRole(’ROLE_USER’)”는 현재 인증된 사용자의 GrantedAuthority 목록에 Role_User가 있는지 확인함
특징
장점
단점
//단순한 권한 체크
@PreAuthorize("hasRole('Admin')")
// 메서드 파라미터와 인증 객체 비교
@PreAUthorize("#id == authentication.principal.id")
//여러 권한 체크
@PreAuthorize("hasAnyRole('USER','ADMIN')")
//조건식
@PreAuthorize("isAuthenticated() and #age >= 20")