Spring Security.ch5

이호영·2022년 5월 11일
0

SpringSecurity

목록 보기
5/6

폼로그인

DefaultLoginPageGeneratingFilter

-GET /login 을 처리
-별도의 로그인 페이지 설정을 하지 않으면 제공되는 필터
-기본 로그인 폼을 제공
-OAuth2 / OpenID / Saml2 로그인과도 같이 사용할 수 있음.

UsernamePasswordAuthenticationFilter

POST /login 을 처리. processingUrl 을 변경하면 주소를 바꿀 수 있다

form 인증을 처리해주는 필터로 스프링 시큐리티에서 가장 일반적으로 쓴다

주요 설정 정보

filterProcessingUrl : 로그인을 처리해 줄 URL (POST)

username parameter : POST에 username에 대한 값을 넘겨줄 인자의 이름

password parameter : POST에 password에 대한 값을 넘겨줄 인자의 이름

로그인 성공시 처리 방법

defaultSuccessUrl : alwaysUse 옵션 설정이 중요

http.formLogin(login-> login.defaultSuccessUrl("/",false)

true로 설정하게되면 로그인 후 root페이지로 다시 이동된다.
successHandler

로그인 실패시 처리 방법
failureUrl
failureHandler

authenticationDetailSource : Authentication 객체의 details 에 들어갈 정보를 직접 만들어 줌.

DefaultLogoutPageGeneratingFilter

GET /logout 을 처리

POST /logout 을 요청할 수 있는 UI 를 제공

DefaultLoginPageGeneratingFilter 를 사용하는 경우에 같이 제공됨.

LogoutFilter

POST /logout을 처리
processiongUrl 을 변경하면 바꿀 수 있음.

로그 아웃을 처리

session, SecurityContext, csrf, 쿠키, remember-me 쿠키 등을 삭제처리 함.
(기본) 로그인 페이지로 redirect

LogoutHandler

void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication);

SecurityContextLogoutHandler : 세션과 SecurityContext 를 clear 함

CookieClearingLogoutHandler : clear 대상이 된 쿠키들을 삭제함

CsrfLogoutHandler : csrfTokenRepository 에서 csrf 토큰을 clear 함

HeaderWriterLogoutHandler

RememberMeServices : remember-me 쿠키를 삭제함.

LogoutSuccessEventPublishingLogoutHandler : 로그아웃이 성공하면 이벤트를 발행함.

LogoutSuccessHandler

void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
throws IOException, ServletException;

SimpleUrlLogoutSuccessHandler

0개의 댓글