Spring

Spring Security 인증 로직

기록만이살길 2021. 3. 9. 05:03
반응형

Spring Security 인증 로직

1. 질문(문제점):

Spring Security의 엔드 포인트 Security은 필터 List으로 달성됩니다. 한 가지 설명이 필요합니다.

필터가 요청을 성공적으로 인증하고 Security 컨텍스트에서 인증 개체를 설정했다고 가정합니다. 이 필터는 filterchain.dofilter ()라고도합니다. authentication.isAuthenticated ()가 true를 반환한다고 가정합니다. 필터가 이미 설정했습니다.

isAuthenticated ()가 호출되면 Security 컨텍스트의 인증 객체가 true를 반환하면 후속 필터가 인증 프로세스를 무시합니까 (authenticationmanager.authenticate ()를 호출하지 않음을 의미)? 또는 isAuthenticated ()가 Security 컨텍스트에서 검색된 인증 객체에 대해 true를 반환하더라도 여전히 authenticationmanager.authenticate ()를 호출합니까? 요청 경로가 필터 구성과 일치한다고 가정합니다 (즉, 요청 서블릿 경로가 해당 구성과 일치하면 후속 필터도 요청을 보게 됨).

미리 감사드립니다.

2. 해결방안:

최대한 자세하게 답변 해 드리겠습니다.

우선 Spring Security가 필터 체인을 사용하는 것은 사실이지만 일반적으로 인증은 체인의 필터 중 하나에서 시작됩니다. 여러 방법으로 사용자를 인증하는 경우 여러 인증 공급자 (AuthenticationProvider)를 구현해야합니다. 그림 1을 살펴보십시오. 인증은 필터 수준에서 시작되며 인증 관리자라는 관리자가 책임을 맡습니다. 관리자는 적합한 AuthenticationProvider를 찾습니다. 그림 1

경우에 따라 여러 인증 필터를 구현할 수 있습니다. 맞춤형 다단계 인증 (MFA) 솔루션이 있다고 가정 해 보겠습니다. 그러나 어떤 필터를 건너 뛸지 결정하는 것은 여러분입니다. 기본적으로 요청은 체인의 각 필터를 따릅니다.

OncePerRequestFilter를 구현하고 shouldNotFilter () 메서드를 재정 의하여 필터가 적용되지 않을 때이를 알리는 경우 건너 뛸 필터를 설계 할 수 있습니다.

결론적으로:

  • 인증 공급자를 사용하는 여러 방법으로 인증을 구현하려면
  • 후속 필터는 명시 적으로 건너 뛰지 않는 한 요청을 보게됩니다.
  • 또한 내가 Spring Security-Spring Security in Action에 대해 쓴 책의 첫 부분을 추천합니다. 인증, 권한 부여 및 필터 체인이 작동하는 방법에 대한 자세한 설명을 찾을 수 있습니다.
65725041
반응형

'Spring' 카테고리의 다른 글

WebLogic Server의 Firebase FCM 문제  (0) 2021.03.09
자바 소켓 가이드  (0) 2021.03.09
Spring Slice Specification Pagable 사용방법  (0) 2021.03.09
Feign 소개  (0) 2021.03.09
Netflix Feign과 OpenFeign의 차이점  (0) 2021.03.08