lottie
Seungjun's blog
blog
@PreAuthorize

@PreAuthorize란?

@PreAuthorize는 Spring Security에서 제공하는 어노테이션으로, 메서드 호출 전에 보안 표현식을 통해 접근 제어를 수행할 수 있게 해줍니다.


이 어노테이션은 메서드 레벨에서 사용되며, 메서드가 실행되기 전에 특정 보안 제약 조건이 충족되는지 확인합니다. 이 제약 조건은 SpEL(Spring Expression Language)을 사용하여 정의됩니다.


예를 들어, @PreAuthorize("hasRole('ROLE_ADMIN')")은 현재 사용자가 'ROLE_ADMIN' 역할을 가지고 있는지 확인합니다. 만약 사용자가 이 역할을 가지고 있지 않다면, 메서드는 실행되지 않고 접근이 거부됩니다.


또한, @PreAuthorize는 더 복잡한 표현식을 지원합니다.

예를 들어,

@PreAuthorize("#user.id == authentication.principal.id")는 메서드 인자인 user의 id가 현재 인증된 사용자의 id와 같은지 확인합니다.


이런 방식으로 @PreAuthorize는 메서드에 대한 세밀한 접근 제어를 가능하게 해줍니다. 하지만 이 기능을 사용하려면 Spring Security의 메서드 보안이 활성화되어 있어야 합니다.