Spring Security - RequestCacheWareFilter Spring Security에서 인증을 필요로 하는 리소스에 대한 요청을 할경우 인증을 먼저 하고 해당 리소스로 이동하게 된다. 이 때 Spring Security는 이전 요청을 캐시해 두었다가 인증 요청을 먼저 처리하고, 캐시해두었던 요청을 처리하는 방식을 사용한다. RequestCacheWareFilter 가 이런 역할을 담당한다. RequestCacheWareFilter 현재 요청과 관련된 캐시된 요청이 있는지 찾아서 적용하는 필터이다. 캐시된 요청이 없다면 현재요청을 처리한다. 캐시된 요청이 있다면 해당 캐시된 요청을 처리한다.
Spring Security - BasicAuthenticationFilter Spring Security 에서 HttpBasic 인증을 처리하는 Filter를 살펴보자. HttpBasic Http Spec 중 Header에 username, password 를 실어 보내면 브라우저 혹은 서버가 그 값을 읽어 인증하는 방식이다. 보통 브라우저 기반 요청이 클라이언트의 요청을 처리할때 자주 사용한다. 보안에 상당히 취약하기 때문에 반드시 HTTPS를 사용할 것을 권장한다. 요청이 하나라도 Snipping 당한다면 인증정보가 노출된다. curl 을 활용하여 HttpBasic 인증하기 curl 을 사용하면 다음과같이 요청을 손쉽게 보내고 응답을 받을 수 있다. -u 옵션을 사용하여 username:passwo..
Spring Security - Login/Logout Page 커스터마이징 DefaultLogin/LogoutPageGeneratingFilter가 생성해주는 것이 아닌 커스텀한 페이지를 설정해 보도록 하자. Login/LogoutPage LoginPage와 LogoutPage를 각각 /login, /logout 으로 지정해주고, loginPage와 logoutPage를 보여줄 핸들러를 작성한다. SecurityConfig LogInOutController GET /login요청을 하면 login.html 을 뷰로 보여주고, GET /logout을 요청하면 logout.html을 뷰로 보여주는 매우 간단한 핸들러이다. login, logout url을 지정해주면, 해당 URL의 GET 요청은 폼을 보여..
Spring Security - DefaultLogin/LogoutPageGeneratingFilter Spring Security 에서 기본 로그인폼 페이지를 생성해주는 Filter이다. DefaultLogin/LogoutPageGeneratingFilter GET /login 으로 들어오면 자동으로 기본 로그인폼 페이지를 생성해준다. Login관련 설정 커스터마이징 SpringSecurityConfig에서 formLogin 설정을 활용하면 username, passwordParameter 를 변경할 수 있다. username, passwordParamter를 변경하면 다음과 같이 기본 제공 LoginPage에서 필드명이 변경되는걸 확인할 수 있다. SpringSecurityConfig를 통해 로그인 ..