![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dvKAlV/btqyKIUHYLJ/D2vdGmEI2s1EvNnfEIjE2k/img.png)
Spring Security - AnonymousAuthenticationFilter Spring Security 에서 익명사용자에 대한 처리를하는 필터를 살펴보자. AnonymousAuthenticationFilter 인증을 하지않은 요청일 경우 SecurityContextHolder에 익명 Authentication객체를 넣어주는 역할을 한다. AnonymousConfigurer 기본으로 만들어서 사용할 익명 Authentication 객체를 설정할 수 있다. 기본값 pricial: anonymousUser authorities: ROLE_ANONYMOUS Null Object Pattern Spring Security 에서는 일종의 Null Object Pattern 을 사용한다. Null Obje..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/QgSdC/btqyOTUkQ4L/0rE5GLDLKFp88bvdn6yXlk/img.png)
Spring Security - SecurityContextHolderAwareRequestFilter Spring Security 에서 시큐리티 관련 서블릿 3 API 를 구현해주는 필터이다. 딱히 우리가 신경쓸 일은 없는 필터이다. SecurityContextHolderAwareRequestFilter Spring Security 에서 서블릿 3 스펙을 지원한다. 시큐리티 관련 메서드들을 스프링 시큐리티 기반으로 구현체를 연결해주는 역할을 한다. HttpServletRequest authenticate(); 인증이 된건지 아닌건지 판단 안되어있을경우 로그인 페이지로 이동 한다. HttpServletRequest login(); AuthenticationManager를 사용하여 인증을 처리하도록 한다...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kWAfJ/btqyMq5uc29/KVLEXGrf3MpLBsQOS2ZsD1/img.png)
Spring Security - RequestCacheWareFilter Spring Security에서 인증을 필요로 하는 리소스에 대한 요청을 할경우 인증을 먼저 하고 해당 리소스로 이동하게 된다. 이 때 Spring Security는 이전 요청을 캐시해 두었다가 인증 요청을 먼저 처리하고, 캐시해두었던 요청을 처리하는 방식을 사용한다. RequestCacheWareFilter 가 이런 역할을 담당한다. RequestCacheWareFilter 현재 요청과 관련된 캐시된 요청이 있는지 찾아서 적용하는 필터이다. 캐시된 요청이 없다면 현재요청을 처리한다. 캐시된 요청이 있다면 해당 캐시된 요청을 처리한다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bLVL5f/btqyI2rEkOk/i6j6itRk5sg8I0JCpxWM0k/img.png)
Spring Security - BasicAuthenticationFilter Spring Security 에서 HttpBasic 인증을 처리하는 Filter를 살펴보자. HttpBasic Http Spec 중 Header에 username, password 를 실어 보내면 브라우저 혹은 서버가 그 값을 읽어 인증하는 방식이다. 보통 브라우저 기반 요청이 클라이언트의 요청을 처리할때 자주 사용한다. 보안에 상당히 취약하기 때문에 반드시 HTTPS를 사용할 것을 권장한다. 요청이 하나라도 Snipping 당한다면 인증정보가 노출된다. curl 을 활용하여 HttpBasic 인증하기 curl 을 사용하면 다음과같이 요청을 손쉽게 보내고 응답을 받을 수 있다. -u 옵션을 사용하여 username:passwo..