Authentication 흐름 2(AnonymousAuthenticationFilter)
->FilterChainProxy의 VirtualFilterchain는 doFilter()를 통해 책임 연쇄 패턴 즉, 설정된 필터들을 doFilter()한다.
->이때, 우리는 몇개의 Filter의 동작을 볼 필요가 있다.
1. AnonymousAuthenticationFilter(익명 인증 필터)
//첫번째 코드===============================================
->VirtualFilterChain 클래스의 doFilter() 시 맨 위의 doFilter()가 실행된다.
->아예 쌩 첫 요청이라 가정(localhost:8080)
->현재 Session이나 뭐, DB등 어떠한 저장소에도 SecurityContext가 없다.
->getDeferredContext()로 deferredContext에는 SupplierDeferredSecurityContext 객체가 들어옴
**후에 SupplierDeferredSecurityContext.get()으로 SecurityContext 지연로딩(아무런 context도 없으니 get() 메소드는 비어있는 객체를 새로 만든다.)
->setDeferredContext로 &어떠한 supplier를 SecurityContextHolder(스레드 로컬이라 한 요청에서 어디든지 securityContext를 빼올 수 있는 객체)에 저장
->&어떠한 supplier는 2번째 코드
//두번째 코드==============================================
->비어있는 Context를 반환하는 supplier.get()해서 비어있는 컨택스트를 currentContext로
->이 객체는 defaultWithAnonymous() 메소드로 개조가 되는데!!!??!!
//세번째 코드==============================================
->currentContext에서 (비어있는 Context) getAuthentication해서 null을 받아준다.
->쭉 훑어보면, 뭐, createAuthentication으로 AnonymousFilter의 인증 객체를 만들어
->새로운 비어있는 컨텍스트에 담아 return
------>주루룩 올라가서 securityContextHolderStrategy.set어쩌구()만 해주고 doFilter()
->다시 VirtualFilterChain의 doFilter() 실행==>책임 연쇄 패턴...