스프링Spring

@PreAuthorize

개린이9999 2025. 5. 16. 08:28
728x90

정의 : @PreAuthorize는 Spring Security에서 메서드 실행 전에 권한을 체크하기 위해 사용하는 어노테이션

-> @PreAuthorize는 “이 메서드를 누가 실행할 수 있는지”를 미리 제한하는 용도

 

 

예시 코드

@PreAuthorize("hasRole('ADMIN')")
public void deleteUser(String id) {
    // 관리자만 실행 가능
}
@PreAuthorize("#userId == authentication.name")
public void updateMyPage(String userId) {
    // 로그인한 사용자 본인만 접근 가능
}
@PreAuthorize("isAuthenticated()")
public List<Post> getMyPosts() {
    // 로그인한 사용자만 글 목록 조회 가능
}

 

주의 사항

@PreAuthorize 쓰려면 보안 설정 클래스에 아래처럼 설정해야 작동함:

@EnableGlobalMethodSecurity(prePostEnabled = true)
728x90