http://www.coolio.so/springsecurity-%EA%B0%95%EC%A0%9C%EB%A1%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%8B%9C%ED%82%A4%EA%B8%B0/
정의되지 않은 로그인 폼을 통해서 로그인 할 경우에도 강제로 SpringSecurity의 로그인 세션을 생성하는 방법을 구현하였다.
1. 로그인으로 사용한 URL에 대한 세션체크 기능을 제외한다.
1
2. 컨트롤러에서 SpringSecurity에 세션 주입
@Resource(name="userDetailsService")
protected UserDetailsService userDetailsService;
@RequestMapping(value="login", method=RequestMethod.POST)
public String login(HttpServletRequest request) throws Exception{
UserDetails ckUserDetails = userDetailsService.loadUserByUsername("USER_ID");
Authentication authentication = new UsernamePasswordAuthenticationToken(ckUserDetails, "USER_PASSWORD", ckUserDetails.getAuthorities());
SecurityContext securityContext = SecurityContextHolder.getContext();
securityContext.setAuthentication(authentication);
HttpSession session = request.getSession(true);
session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);
return "redirect:/login/success";
}
댓글
댓글 쓰기