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

}

 

HKH
2014-12-02 09:32
SHARE
댓글

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

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

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

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

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

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

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

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

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

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

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

(수정됨)


댓글이 삭제 되었습니다.
궁금
keyboard_arrow_left
keyboard_arrow_up