
CustomLoginSuccessHandler.java
package kr.or.ddit.security;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
@Slf4j
public class CustomLoginSuccessHandler extends
SavedRequestAwareAuthenticationSuccessHandler{
@Override
public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response, Authentication auth)
throws ServletException, IOException {
log.warn("*** onAuthenticationSuccess ***");
User customUser = (User)auth.getPrincipal();
log.info("username: {}", customUser.getUsername());
List<String> roleNames = new ArrayList<String>();
auth.getAuthorities().forEach(authority -> {
roleNames.add(authority.getAuthority());
});
log.info("ROLE NAMES : ", roleNames);
if(roleNames.contains("ROLE_MEMBER")) {
response.sendRedirect("/member/main");
}
if(roleNames.contains("ROLE_ADMIN")) {
response.sendRedirect("/admin/main");
}
super.onAuthenticationSuccess(request, response, auth);
}
}