security login 한 후에 로그인내역로그를 남긴다거나 하고싶을때가 있을것이다.
대부분 필요하기도 하고 이럴때 handler만들어서 하면 편하당
http
.formLogin()
...
.successHandler(successHandler())
// .successHandler(new LoginSuccessHandler()) 가능
.failureHandler(failureHandler());
...
@Bean
LoginSuccessHandler successHandler() {
return new LoginSuccessHandler();
}
@Bean
LoginFailureHandler failureHandler() {
return new LoginFailureHandler();
}
셋팅자체는 어렵지않다.
security config 하는곳에서 handler를 추가해주면 끝.
그럼 알아서 로그인성공시 실패시에 보내줄것이다.
public class LoginSuccessHandler extends SimpleUrlAuthenticationSuccessHandler{
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws IOException, ServletException {
// 로그인 성공시 할 행동
}
}
public class LoginFailureHandler extends SimpleUrlAuthenticationFailureHandler{
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) throws IOException, ServletException {
// 로그인 실패시 할 행동
}
}
extends, implements 할수있는 handler종류가 몇몇개 있던데 어느것을 해도 상관은없다 용도에 맞게 쓰면될듯?