AOP인가프로세스 DB연동 -method방식v2

Shaun·2022년 3월 2일
2

Spring Security

목록 보기
16/19

AOP방식 인가처리 - Method방식

  • 저번 시간에 method인가 처리 방식에 대해 배웠다. 그럼 이번시간에는 method방식이 초기화시 어떻게 동작하는지 알아보자

  • 초기화시 proxyCreater란 녀석이 모든 빈들을 검사한다. 그 중에 보안과 관련된 설정이 있는 메서드들을 찾아낸다.

  • 그 메서드들의 가짜 객체 즉 프록시를 생성한다.

  • 그리고 그 메서드를 사용하기위한 인가처리 즉 어드바이스를 설정한다.

  • 실제 이 메서드를 호출하면 프록시객체가 먼저 나가고 어드바이스 즉 인가 처리를 통과하면 실제 메서드가 호출된다.

좀더 자세히 알아보자!

  • 자동프록시 생성기가 빈이 쓰여있는 보안에관련된 메서드에대한 프록시를 만든다(preAuthorize or Secured)

  • 포인트컷 에서 빈에 대한 클래스와 메서드 정보MethodSecurityMetadataSource에 넘기고 실직적 빈 검사는 여기서 일어난다.

  • 통과되면 프록시가 생성된다. 프록시는 Advisior 을 참조한다.ㄹ

  • interceptor은 메서드 전후로 부가기능 처리할수있도록 하는것 즉 Advice= 인가처리 담당을 의미한다.

Flow

  1. ProxyCreator에서 MetadataSourceAdvisior - pointcut을 통해 모든 빈을 검사해 보안관련된 메서드들을 찾는다.

  2. 그 메서드들에 대해 프록시 객체를 만들고 인가처리(Advice) 를 설정한다.

  3. 실제 그 메소드 호출시 프록시 객체가 먼저 나가고 어드바이스 인가처리를 실행한다. 인가처리 통과시 프록시가아닌 실제 메서드가 호출

*인가처리(advice) 가 등록 되지 않았다면 호출시 실제 메서드가 바로 호출된다.


URL방식 VS Method방식

  • AOP기반은 필터가아닌 Advice(Interceptor)가 처음으로 클라의 요청을 받는다.

  • 둘다 결론은 AccessDEcisionManager 에게 권한정보를 줘서 인가 처리를 받는것이다. /둘다 인가처리시 부모 클래스 호출 = 공통점

  • 둘다 맵객체에 저장한다. 왼쪽은 URL자원정보를 키로 권한정보. , 오른쪽은 메서드를 키값으로 권한정보를 가져온다

  • 한가지 다른점은 AOP방식은 인가처리뒤 프록시가아닌 진짜 객체의 메서드 호출

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

0개의 댓글