-
2024.02.25 AuthorizationManagerTIL 2024. 2. 25. 16:38
spring security 5.6을 사용하다가 6.1로 버전업을 하고 있는 중.
5.6에서의 인증인가는 filterSecurityInterceptor와 methodSecurityInterceptor에서 이뤄졌음.
voter를 통해 권한 검사를 했음.
6.1 버전 혹은 5.8 버전 부터 AuthorizationFilter와AuthorizationManagerBeforeMethodInterceptor로 대체되었고
voter는 AuthorizationManager가 그 역할을 대신하고 있다.authorizeHttpRequests을 쓰면 AuthorizationFilter를 쓰고 authorizeRequests를 쓰면 filterSecurityInterceptor를 쓴다고 한다.
RequestMatcherDelegatingAuthorizationManager가 url과 AuthorizationManager를 매핑으로 가지고 있다.
그래서 url 별로 manager를 가져서 인가를 각자 구현할 수 있다.
장점은 위와 같다고 생각하지만 단점으로 생각하는 것이 있다.
이전에는 voter를 하나 추가하면 모든 url에 적용할 수 있었다.
이제는 모든 url에 검사해서 추가하고 싶다면 기본 AuthorizationManager를 대체해야한다.
이말은 voter추가만 띡 하는 것이 아닌 기존 기능까지 가지고 있는 AuthorizationManager를 넣어야한다는 것이다.
예로 보면 모든 url을 검사하고 싶다면 AuthenticationTrustResolver를 넣어서 검사해야한다.
예제
'TIL' 카테고리의 다른 글
2024.04.06 spring kafka transaction isolation level, L4L7 (0) 2024.04.06 2024.03.31 MMM galera cluster (0) 2024.03.31 2024.02.23 DLT logging custom (0) 2024.02.23 2024.02.03 spring security Authorization Manager Method Security (0) 2024.02.03 2024.01.14 TransactionSynchronizationManager (0) 2024.01.14