기본 콘텐츠로 건너뛰기

SpringSecurity 강제로 로그인 시키기


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";
}


댓글