Security에서 Login 인증 성공에 따른 이전페이지로 이동할 수 있도록 제공해주는 Handler가 있는데
그것이 바로 SavedRequestAwareAuthenticationSuccessHandler 이다.
Security설정할때 SuccessHandler로 이 클래스를 등록해주면 된다.
ex )
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.formLogin()
.loginPage("/login")
.successHandler(successHandler())
.permitAll()
...
;
}
다음은 이 핸들러에 대한 동작 과정에 대한 간단한 설명이다.
먼저 로그인을 해야하는 권한 페이지로 접속했을때 로그인페이지로 가게 되는데 이때 handleSpringSecurityExcpetion이 동작하게 된다.
Excepiton 발생시 ExceptionTranslationFilter클래스 안에 sendStartAuthentication 메소드에서 Request 을 Save하고 인증을 위한 Login Form URL로 이동하게 된다.
여기서 인증 성공시 SavedRequestAwareAuthenticationSuccessHandler 에서 세션에 저장된 SavedRequest을 로드하여 Referer 주소로 리다이렉트 한다.
'Security' 카테고리의 다른 글
크롬에서 쿠키 전송 되지 않는다? 외부도메인 SameSite (0) | 2020.03.24 |
---|---|
Spring Security CSRF, Referer 용어 (0) | 2019.05.02 |
Spring Security Filter및 DB 인증 암호화 인증과정 설명 (UsernamePasswordAuthenticationFilter) (0) | 2019.04.26 |
Spring Boot 2.0 Security - Static Resource ( favico.ico, css, js , image ) (0) | 2019.04.24 |
댓글