본문 바로가기
Security

Spring Security Login에 따른 이전페이지(Referer) URL 이동SavedRequestAwareAuthentication SuccessHandler 소개

by Gil Granger 2019. 12. 4.

Security에서 Login 인증 성공에 따른 이전페이지로 이동할 수 있도록 제공해주는 Handler가 있는데

그것이 바로 SavedRequestAwareAuthenticationSuccessHandler 이다. 

 

Security설정할때 SuccessHandler로 이 클래스를 등록해주면 된다.

 

ex )

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .formLogin()
            .loginPage("/login")
            .successHandler(successHandler())
            .permitAll()
            ...
    ;
}

 

 

 

 

다음은 이 핸들러에 대한 동작 과정에 대한 간단한 설명이다.

 

 

 

먼저 로그인을 해야하는 권한 페이지로 접속했을때 로그인페이지로 가게 되는데 이때 handleSpringSecurityExcpetion이 동작하게 된다.

 

ExceptionTranslationFilter

 

ExceptionTranslationFilter

Excepiton 발생시 ExceptionTranslationFilter클래스 안에 sendStartAuthentication 메소드에서 Request 을 Save하고 인증을 위한 Login Form URL로 이동하게 된다.

 

SavedRequestAwareAuthenticationSuccessHandler 

 

여기서 인증 성공시 SavedRequestAwareAuthenticationSuccessHandler 에서 세션에 저장된 SavedRequest을 로드하여 Referer 주소로 리다이렉트 한다.

 

 

 

 

댓글