SpringSecurityV4 (중간정리)

Shaun·2022년 1월 22일
1

Spring Security

목록 보기
8/19
post-thumbnail

처음 springSecurity 초기화

1.우리가 만든 filters 들을 wbSecurity로 보낸다. 그리고 fitlerChainProxy에 우리가 만든 fiters들을 전달

2 DelegatingspringSecurityFilterchain의 이름을 가진 빈을 찾는다 그게바로 fitlerchainProxy

FILTERS

  • 1번 필터 loadContext에서 session 저장한 이력이 잇는지 체크

  • UsernamePasswordAuthetnicaton Filter 에서 사용자 검증시 거의 동시에 sessionManagemenetFilter cocurrent에서 동시접속 세션 확인

  • 인증이 완료 됏을때 sessionFixation(세션고정보호) 새로운 세션생성되고 새로운 쿠키 발급되도록 한다
    (CocurrentManagerment Filter 바로가기)

  • 인증이 완료돼면 1번 필터가 authentication객체가 있는scurityContext를 세션에 저장

로그인 성공후 flow

  • 로그인성공뒤 index 페이지로 가면.
    다시 Delgating(요청제일먼저 받음) -> FilterChain(우리가 만든 fitler들 ->websecurity ->filterChainProxy)
    -> filters ->loadContext(세션에 정보잇나확인 ) ->다음 필터 순서로 똑같다

각 필터 참고사항

  • SecurityContextPersistenceFilter = 1. 처음 인증 할때 랑 2. 인증한 유저가 자원에 접근할경우 처리하는 과정

  • Cocurrent필터는 최소한 동일한계정으로 두명이상 접속해야 발동됌 그래서 인증한뒤에는 넘어간다.

  • 세션만료, 세션무효화 session 안에 SecurityContext 안의 authentication 객체가 Null 일경우 RememberMe 발동, / 인증한 경우에는 발동 x
    (Remberme 바로가기)

  • sessionManagementFIlter = > session 이 Null 이거나 session 안에 sc가 없을 경우 발동 // 그래서 인증한 경우에는 동작 x
    (sessionManagement 바로가기)

같은계정으로 두번째 유저가 접근시도

  • 두번쨰 사용자가 인증 성공하면 첫번째 사용자는 세션 만료처리

  • 다음에 첫번쨰 사용자가 인증 시도하면 cocurrent sessionFilter(사용자 세션만료 확인) 이 발동돼서 오류메세지 화면에 출력

profile
호주쉐프에서 개발자까지..

0개의 댓글