스프링 시큐리티/실전프로젝트 - 인가 프로세스 DB 연동 서비스 계층 구현

ch03. 어노테이션 권한 설정 - @PreAuthorize, @PostAuthorize, @Secured, @RolesAllowed

webmaster 2022. 1. 25. 15:59
728x90
  • 보안이 필요한 메서드에 설정한다
  • @PreAuthorize, @PostAuthorize
    • SpEL 지원
    • @PreAuthorize("hasRole('ROLE_USER’) and (#account.username == principal.username)")
    • PrePostAnnotationSecurityMetadataSource 가 담당
  • @Secured, @RolesAllowed
    • SpEL 미지원
    • @Secured ("ROLE_USER"), @RolesAllowed("ROLE_USER")
    • SecuredAnnotationSecurityMetadataSource, Jsr250MethodSecurityMetadataSource 가 담당
  • @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
    • 설정 클래스에 반드시 해당 어노테이션이 선언해야 한다.
    • 해당 설정을 해야 Bean으로 생성하여 등록하기 때문에 반드시 설정 클래스에 속성을 켜야 한다.
  • SPEL

    • 해당부분을 Advice로 등록하여 후에 해당 메소드로 접근하였을 경우, 해당 Advice가 동작하여 권한 체크를 한다.
728x90