package kr.wisestone.owl.config.security.handler; import kr.wisestone.owl.common.MessageAccessor; import kr.wisestone.owl.constant.Constants; import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.User; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.ElasticSearchUtil; import kr.wisestone.owl.vo.UserVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; @Component public class AjaxAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { private final Logger log = LoggerFactory.getLogger(AjaxAuthenticationSuccessHandler.class); @Autowired protected MessageAccessor messageAccessor; @Override public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse response, Authentication authentication) { Map resJsonData = new HashMap<>(); User user = (User) authentication.getPrincipal(); try { log.info(ElasticSearchUtil.makeUserSessionHistoryMessage(httpServletRequest, ConvertUtil.copyProperties(user, UserVo.class))); } catch (Exception ex) { log.error(ex.getMessage()); } resJsonData.put(Constants.RES_KEY_MESSAGE, this.messageAccessor.getResMessage(MsgConstants.SUCCESS_REQUEST, Constants.RES_KEY_MSG_SUCCESS)); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.setStatus(HttpServletResponse.SC_OK); String data = ConvertUtil.convertObjectToJson(resJsonData); try { PrintWriter out = response.getWriter(); out.print(data); out.flush(); } catch (IOException e) { log.error(e.getMessage()); } } }