Spring Security

Yujin Shin·2022년 10월 18일
0

TIL🔥

목록 보기
5/5

로그인 인증 구조

  1. HTTP Request
  2. Authentication Filter가 사용자가 보낸 정보를 intercept
  3. AuthenticationManager(Interface)에게 보내서, UsernamePasswordAuthenticationToken을 만든다.

AbastractAuthentication Filter

  • 웹 기반 인증요청에서 사용되는 컴포넌트
  • ID, Password가 포함된 POST Form 데이터를 포함한 요청을 처리
  • Authentication 을 생성
  1. Authentication Provider에서 실제 인증이 일어남.
    4.1 성공하면 성공 인증
    4.2 실패하면 Exception

  2. Authentication Provider 는 Authentication객체를 받음.

  3. UserDetailsService에서 auth객체를 가지고 DB에 있는 유저임을 알게 된다면, UserDetails라는 객체를 꺼내서 User의 세션을 생성한다.

  4. UserDetails는 SecurityContext(Spring Security In memory)에 저장하고, 유저 세션아이디와 응답을 보냄.

  5. 요청 쿠키에 JSESSION을 검증 후 , 유효하다면 인증을 하게 된다.

Security 주요 Filter

SecurityContextPersistenceFilter

SecurityContextRepository를 통해 SecurityContext를 Load/Save 처리

LogoutFilter

로그아웃 URL(default : /logout)로의 요청을 감시하여 해당 사용자를 로그아웃 시킴.

UseranmePasswordAuthenticationFilter

ID/Password 기반 Form 인증 요청 URL(default : /login)을 감시하여 사용자를 인증함.

ExceptionTransiationFilter

요청을 처리하는 중에 발생할 수 있는 예외를 위임하거나 전달
Exception Handler와 비슷하다고 볼 수 있음.

FilterSEcurityInterceptor

접근 권한 확인을 위해 요청을 AccessDecisionManager로 위임.
이 필터가 실행되는 시점에는 사용자가 인증됐다고 판단

profile
아무것도 몰라여 @_@

0개의 댓글