• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

인가 관련 질문입니다.

22.11.14 21:20 작성 조회수 260

1

안녕하세요.
섹션 5. 실전프로젝트 - 인가 프로세스 DB 연동 웹 계층 구현
4) 웹 기반 인가처리 DB 연동 - FilterInvocationSecurityMetadataSource (1)
강의 내용 중 질문이 있어 남깁니다.

 

일단 Spring Security 현 시점 최신 버전입니다.

 

질문할 부분은 FilterInvocationSecurityMetadataSource 구현체를 포함한 사용자 정의 FilterSecurityInterceptor 구현체를 최초로 구현/설정하고 실행하는 단계입니다.


강의 상에서는 두 개의 FilterSecurityInterceptor가 마지막에 있고
앞에 위치한 사용자 정의 FilterSecurityInterceptor만 실행되고 뒤의 것은 실행되지 않아서 정적으로 설정한 인가가 적용되지 않는 모습이었는데,


제 버전에는 사용자 정의 FilterSecurityInterceptor, AuthorizationFilter가 있고
강의와 달리 AuthorizationFilter 에서 정상적으로 해당 인가가 처리되는 모습입니다.

  1. 이는 버전상의 차이가 맞나요? 혹은 잘못 이해했거나 설정상에 실수가 있었을 수 있나요?

  2. 맞다면 사용자 정의 AuthorizationFilter를 구현한 완전히 새로운 방법을 사용해야 할까요?

 

 

 

답변 1

답변을 작성해보세요.

1

AuthorizationFilter 은 새롭게 추가된 권한 처리 필터입니다.

저도 해당 필터를 직접 사용해 보지는 않았는데 시큐리티에서는 인가 처리시 해당 필터를 사용하게 될 것으로 보입니다.

인가 설정 시 http.authorizeRequests() 가 아닌 http.authorizeHttpRequests() 로 선언하게 되면

FilterSecurityInterceptor 가 아닌 AuthorizationFilter 가 인가처리를 하도록 필터가 구성되는 것 같습니다.

제가 테스트 해 본 바로는 FilterSecurityInterceptor 로 인가처리를 하든 AuthorizationFilter 로 하든 결과론적으로는 차이가 없는 것 같은데 아직 깊게는 파악하지 못한 상태입니다.

시간이 되면 전반적인 원리나 흐름을 살펴 볼 생각입니다.

일단 시큐리티에서 인가처리를 위한 새로운 필터 개념으로 추가한 것이기 때문에 사용하는데는 아무런 문제가 없어 보이지만 FilterSecurityInterceptor 와 다른 차이점으로 인한 예외적인 상황이 발생할 수도 있다는 점 참고해 주시기 바랍니다.