Spring Security 강제 로그인 시키기

북마크 추가

spring security가 적용된 프로젝트에 공인인증서를 이용한 로그인 기능이 필요 하여

강제로 로그인 하는 방법을 구현하였다.

 

@Controller

public class test{

 

@Autowired

@Qualifier("org.springframework.security.authenticationManager")

private AuthenticationManager authenticationManager;

 

@RequestMapping("url")

public test `~~~~~~(){

 


UserInfo userinfo = customerDAOService.selectUserBySn(ext.Serial); // pk로 사용자 정보 뽑아옴 각자 맞는 쿼리 사용

Authentication authentication  = new UsernamePasswordAuthenticationToken(userinfo, userinfo.getPassword(), userinfo.getAuthorities());
SecurityContext securityContext = SecurityContextHolder.getContext();
securityContext.setAuthentication(authentication);


HttpSession session = request.getSession(true);
session.setAttribute("SPRING_SECURITY_CONTEXT",securityContext);   // 세션에 spring security context 넣음

 

session.setAttribute("name", userinfo.getCustomerNm());
session.setAttribute("customerId", userinfo.getCustomerId()); 

 

return "redirect:/Main.do";​

}

 

AD
관리자
2014-12-02 09:32
SHARE
댓글

정말 정말 정말 정말 정말 감사드립니다!!!!!! ㅜㅜㅜㅜㅜ
궁*

정말 죄송한데 조금만 더 여쭤봐도 될까요?? 

아직 개발 초보라서 이해가 잘 되지 않는 부분이 존재하네요 ㅜㅜ 

사용자가 기본적으로 해당 사이트에 회원가입을 통한 등록이 되어 있어야 하고,  그 아이디로 로그인을 하고 난 뒤에 공인인증서를 등록하는 건가요? 

저 하나만 해결이 되면 다 이해가 될것 같습니다 ㅎㅎㅎ
궁*
 보통은 최초 회원가입 후  로그인을 한 후 공인인증서 등록을하고  
그 이후에는 로그인시 공인인증서만으로 로그인을 하게 많이 합니다
관리자

아 이거 댓글을 달아도 답변을 받을수 있을지 잘 모르겠지만...

그래도 남겨보겠습니다 ㅜㅜ 

공인인증서로 로그인을 하는 개념이... 잘 이해가 안되는데... 공인인증서로 로그인을 하기 위해서는 

사용자가 해당 사이트에 공인인증서를 등록해 놓은 상태여야 하는건가요?? 즉, 공인인증서에 해당하는 아이디와 비밀번호를 디비에 가지고 있는 건가요?? 

그 상태에서 사용자가 공인인증서 비밀번호를 입력하면  비밀번호가 서버쪽에서 들어와서 그걸 가지고 판단해서 로그인을 시켜주시는 건가요?? 그런 개념이 좀 알고 싶습니다 ㅜㅜㅜ 

그러면.. 또 아이디는 어떻게 알 수 있는건지.. 이런게 궁금합니다 ㅜㅜㅜ
궁*
 공인인증서의 경우 외부 업체 모듈을 사용하여 연동을 하게 되는데 공인인증서 모듈을 사용하면
해당 사용자의 고유 값을 받을수 있습니다.
최초 등록을 통해 사용자 아이디에 고유값을 매칭시켜 등록을 하는 과정이 필요하고
그 이후 부터는 모듈을 통해 공인인증서 로그인을 하게 되면 인증 성공 실패 여부와 사용자 고유값이 오게 되고
이 고유값으로 사용자를 조회 하여 강제 로그인 시킵니다.
최초1회 공인인증서등록 : 사용자별 고유값(키) 저장
이후 공인인증서 로그인 : 공인인증서 인증 성공 -> 고유 값으로 사용자 아이디 조회 -> 조회한 아이디 강제 로그인 과정으로 진행됩니다. 강제로그인은 로그인 세션을 만들어 주는 과정입니다.
관리자

(수정됨)


댓글이 삭제 되었습니다.
궁*