Spring-Security기본 및 정리

Developer:Bird·2021년 3월 2일
0

Spring

목록 보기
13/17

Spring security는 Spring 기반의 보안(인증+인가)를 담당하는 하위 프레임워크이다.
이때 인증,인가 부분들은 수많은 Filter흐름에 따라 진행된다.
기본적인 Architecture는 다음과 같다.

1.기본 용어 및 모듈:

  • SecurityContext: Security정보 담을 Session
  • Principal:접근 실제 주체
  • Authentication:인증관련 정보들
  • UserDetails: 접근주체와 관련된 인터페이스

2. 로그인(인증) 흐름을 요약하면 다음과 같다.

1. 로그인 요청

2. AuthenticationFilter에서 UsernamePasswordAuthenticationToken을 생성하여 AuthenticaionManager에게 전달

3. AuthenticaionManager는 등록된 AuthenticaionProvider(들)을 조회하여 인증을 요구함

4.AuthenticaionProvider는 UserDetailsService의 @loadByUserName을 실행시켜 입력받은 아이디에 대한 사용자 정보를 DB에서 조회함(실제 @Entity)

5. 입력받은 비밀번호를 암호화하여 DB의 비밀번호화 매칭되는 경우 인증이 성공된 UsernameAuthenticationToken을 생성하여 AuthenticaionManager로 반환함

6.AuthenticaionManager는 UsernameAuthenticaionToken을 AuthenticaionFilter로 전달함

7.AuthenticationFilter는 전달받은 UsernameAuthenticationToken을 LoginSuccessHandler로 전송하고, SecurityContextHolder에 저장함

참고사이트:https://mangkyu.tistory.com/77

profile
끈임없이 발전하자.

0개의 댓글