DeVeLoP
Spring Security 강제 로그인
freecatz
2019. 2. 22. 10:26
Spring Security를 적용한 경우 session 에 값만 만들어 준다고 로그인 처리가 되지 않는다.
아래의 코드는 Spring Security 3.2.7.RELEASE 와 4.1.0.RELEASE,
Spring 5.1.2.RELEASE
에서 쿠키를 이용하여 로그인을 처리 해야 하는 경우에 사용 하였다.
// 사용자의 아이디, 비밀번호, ROLE_ 로 시작 하는 권한 정보를 가지고 온다.
MySessionDataDto mInfo = commonSvc.getMySessionData(userid);
Authentication authentication = new UsernamePasswordAuthenticationToken(mInfo.getUserid(), mInfo.getUserpw(), AuthorityUtils.createAuthorityList(mInfo.getUserauth()));
SecurityContext securityContext = SecurityContextHolder.getContext();
securityContext.setAuthentication(authentication);
HttpSession session = request.getSession(true);
// 세션에 필요한 정보를 넣어 준다.
session.setAttribute("userid", mInfo.getUserid());
session.setAttribute("usernm", mInfo.getUsernm());