Method Level Authentication

김가빈·2023년 9월 1일
0

springsecurity

목록 보기
14/23
  • method level에서도 spring security를 적용할 수 있다.
  • service, controller 등 어느 레이어에서도 적용할 수 있으며, 웹 어플레케이션이 아닌 경우에도 적용 가능하다.

실습

  • security config class에 다음과 같이 설정한다.


@preAuthorize

  • 특정 권한을 지닌 경우에만 메소드를 호출 할 수 있도록 메소드 실행 전에 사전 검사를 수행한다.
    • 다음 코드의 경우 ROOT권한을 가진 경우에만 해당 메소드에 접근 가능하다.

@PostAuthorize

  • 메소드 실행 후에 권한 검사를 수행한다.
  • 메소드가 실행된 후 지정된 표현식에 따라 반환된 결과를 확인하여 인증 및 권한을 검사한다.
  • 예를들어 위의 코드와 같이 작성했을 떄 유저의 권한이 ROOT가 아닌 경구 결과 값을 반환하지 않는다.
  • 다음과 같이 메소드의 반환 결과와 authentication을 비교하는 것도 가능하다.

@PreFilter

  • @PreAuthorize와 @PostAuthorize가 단수 객체나 필드 값에 대한 authorize를 실행한 반면 filter는 컬렉션과 같이 복수 객체나 필드 값에 대한 authorize를 실행한다.

@PostFilter

profile
신입 웹개발자입니다.

0개의 댓글