1.우리가 만든 filters 들을 wbSecurity로 보낸다. 그리고 fitlerChainProxy에 우리가 만든 fiters들을 전달
filters ->webSecurity ->filterChainProxy
2 Delegating 은 springSecurityFilterchain의 이름을 가진 빈을 찾는다 그게바로 fitlerchainProxy
요청오면 Delegating이 제일 먼저 받음 그걸 fitlercahinproxy 에게 전달 ->filter들에게 처리 요청 시작
1번 필터 loadContext에서 session 저장한 이력이 잇는지 체크
UsernamePasswordAuthetnicaton Filter 에서 사용자 검증시 거의 동시에 sessionManagemenetFilter cocurrent에서 동시접속 세션 확인
인증이 완료 됏을때 sessionFixation(세션고정보호) 새로운 세션생성되고 새로운 쿠키 발급되도록 한다
(CocurrentManagerment Filter 바로가기)
SecurityContextPersistenceFilter = 1. 처음 인증 할때 랑 2. 인증한 유저가 자원에 접근할경우 처리하는 과정
Cocurrent필터는 최소한 동일한계정으로 두명이상 접속해야 발동됌 그래서 인증한뒤에는 넘어간다.
세션만료, 세션무효화 session 안에 SecurityContext 안의 authentication 객체가 Null 일경우 RememberMe 발동, / 인증한 경우에는 발동 x
(Remberme 바로가기)
sessionManagementFIlter = > session 이 Null 이거나 session 안에 sc가 없을 경우 발동 // 그래서 인증한 경우에는 동작 x
(sessionManagement 바로가기)
두번쨰 사용자가 인증 성공하면 첫번째 사용자는 세션 만료처리
다음에 첫번쨰 사용자가 인증 시도하면 cocurrent sessionFilter(사용자 세션만료 확인) 이 발동돼서 오류메세지 화면에 출력