인가처리 method방식 -PointCut

Shaun·2022년 3월 2일
1

Spring Security

목록 보기
18/19

ProtectPointcutPostProcessor

  • 권한정보 설정시 자원에 포인트컷 표현식을 사용할수 있도록 지원하는 클래스

  • 이 방법을 사용하면 빈 검사시 포인트 표현식과 매칭되는 클래스, 메소드, 권한정보를 MapBased에 전달한다. 그 이후 과정은 똑같다. 프록시 생성해주고 advice설정하고

  • 이전 방식과 매우 흡사하며 pointcut 표현식만 추가된 느낌이다.

  • 빈 생성시 접근제한자가 public이 아니라 리플렉션 을 이용해 생성한다.

  • 저번에 method방식과 매우 흡사하다. 다른점은 DB에서 권한정보를 포인트컷 형식으로 가져와 바로 mapBased에게 보내는것이 아니라 ProtectPointcutProcessor에게 보내준다. 그러면 빈 검사시 빈 메서드들과 포인트컷표현식으로 쓰여진 권한정보를 서로 비교해 해당하는 메서드들을 파씽해 mapBased에게 전달 해준다.

실습

  • 포인트컷 표현식만 추가된것이기떄문에 기존의 방법과 매우 흡사하다.

  • 눈여겨 볼점은 빈 생성시 접근자가 public이 아니라 리플렉션 방법을 사용해야 한다는 점이다.

  • 이렇게만 작성해서 돌리면 오류가난다. 빈검사시 빈 메서드들을 가져와 pointcut표현식으로 작성된 메서드 권한정보들과 비교하는 부분이다. 별도의 try-catch문이 없어서 예외가 터지면 동작을 멈추게 된다.

  • 그래서 우리는 저 클래스를 public 클래스로 똑같이 복사하고 빈메서드들과 포인트컷 표현식 비교부분을 try-catch문으로 감싸준뒤에 bean으로 등록 할예정이다.

  • 그러면 비교시 오류가 안나고 비교가 잘 진행 됀다.

profile
호주쉐프에서 개발자까지..

0개의 댓글