-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
@PostAuthorize / @PreAuthorize
@PostAuthorize
@PostAuthorize 어노테이션은 메소드를 실행하고
클라이언트한테 응답을 하기 직전에 권한을 검사하는 어노테이션이다.
잠깐, 클라이언트한테 응답하기 전에 검문이 있겠습니다.
로그인상태 입니까?
그리고 반환되는 사용자의 이름과 현재 사용자의 이름이 일치합니까?
또는 현재 사용자가 관리자 권한을 들고있습니까?
이 조건을 만족하는 사용자의 경우에만 응답할 수 있습니다.
아니라면 403 에러로 응답해드립니다.
뭐 이런식이다.
이 어노테이션을 활성화 시키기 위해서는 SecurityConfig 설정에서 @EnableGlobalMethodSecurity(prePostEnabled = true) 어노테이션을 사용해야 한다.
@PreAuthorize
클라이언트의 요청이 들어와 메소드를 실행하기 전에 권한을 검사하는 어노테이션이다.
//@PostAuthorize("hasRole('ROLE_MANAGER')")
//@PreAuthorize("hasRole('ROLE_MANAGER')")
@Secured("ROLE_MANAGER")
@GetMapping("/manager")
public @ResponseBody String manager() {
return "매니저 페이지입니다.";
}이 메소드 호출 전에 Principal (접근 대상)의 레벨이 ROLE_MANAGER 인지 검사한다.
이 메소드 호출 후에 클라이언트에 응답하기 전, Principal (접근 대상)의 레벨이 ROLE_MANAGER인지 검사한다.
사실 이 두 어노테이션은 @secured 하나로 처리해도 충분하지 않을까?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels