spring security 세션 부여 관련 질문 드립니다.
- 작성자 :
- 유*길
- 작성일 :
- 2018-01-31 17:22:42
- 조회수 :
- 1,645
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
안녕하세요. 스프링 시큐리티 환경에서 자동로그인을 구현해보고 있는데요.
현재 진행 프로세스는 아래와 같습니다.
1. 최초 로그인 시도
2. 로그인 성공 시 쿠키 생성(세션ID, 유저ID), DB 저장(세션ID, 유저ID)
3. 2번째 메인 페이지 진입
3-1. 페이지 진입 시 쿠키 체크
3-2. 쿠키 존재 시 쿠키에 있는 유저ID, 세션ID를 파싱 후 DB 조회.
3-3. 해당 데이터가 존재하며, 세션 유효기간이 유효 할 시 로그인 진행
위와 같은 프로세스로 진행하고 있는데 3-3 부분 `세션 유효기간이 유효 할 시 로그인 진행` 부분에서 막히고 있어서 질문 드립니다.
구글링 해보니 스프링 시큐리티 환경에서는 단순히 세션을 생성해준다고 해서 로그인 진행이 안된다고 하더군요.
그래서 찾아보니 아래와 같은 과정을 거치도록 하고 있었습니다.
Authentication authentication = new UsernamePasswordAuthenticationToken(userVO.getPasswd(), "ROLE_USER_MEMBER");
SecurityContext securityContext = SecurityContextHolder.getContext();
securityContext.setAuthentication(authentication);
session.setAttribute("AuthVO", userVO);
위 사항은 쿠키에서 꺼내온 데이터로 유효한 유저정보 조회에 성공하였을 시 위 로직을 타고 있으며 세션에 들어가는 userVO 에는 로그인 성공 시와 동일한 유저데이터가 들어갑니다.
위와 같이 진행 후 페이지 이동을 하면 미인증 접근 에러가 나더군요. 로그인 없이 페이지에 진입한다는건데..
관련하여 강제 로그인을 진행하려면 어떻게 하면 좋을지 문의 드립니다.
쿠키 요청은 ajax 로 요청 후 성공 response 를 받아오면 js 에서 페이지 href 로 이동시키고 있습니다.
현재 진행 프로세스는 아래와 같습니다.
1. 최초 로그인 시도
2. 로그인 성공 시 쿠키 생성(세션ID, 유저ID), DB 저장(세션ID, 유저ID)
3. 2번째 메인 페이지 진입
3-1. 페이지 진입 시 쿠키 체크
3-2. 쿠키 존재 시 쿠키에 있는 유저ID, 세션ID를 파싱 후 DB 조회.
3-3. 해당 데이터가 존재하며, 세션 유효기간이 유효 할 시 로그인 진행
위와 같은 프로세스로 진행하고 있는데 3-3 부분 `세션 유효기간이 유효 할 시 로그인 진행` 부분에서 막히고 있어서 질문 드립니다.
구글링 해보니 스프링 시큐리티 환경에서는 단순히 세션을 생성해준다고 해서 로그인 진행이 안된다고 하더군요.
그래서 찾아보니 아래와 같은 과정을 거치도록 하고 있었습니다.
Authentication authentication = new UsernamePasswordAuthenticationToken(userVO.getPasswd(), "ROLE_USER_MEMBER");
SecurityContext securityContext = SecurityContextHolder.getContext();
securityContext.setAuthentication(authentication);
session.setAttribute("AuthVO", userVO);
위 사항은 쿠키에서 꺼내온 데이터로 유효한 유저정보 조회에 성공하였을 시 위 로직을 타고 있으며 세션에 들어가는 userVO 에는 로그인 성공 시와 동일한 유저데이터가 들어갑니다.
위와 같이 진행 후 페이지 이동을 하면 미인증 접근 에러가 나더군요. 로그인 없이 페이지에 진입한다는건데..
관련하여 강제 로그인을 진행하려면 어떻게 하면 좋을지 문의 드립니다.
쿠키 요청은 ajax 로 요청 후 성공 response 를 받아오면 js 에서 페이지 href 로 이동시키고 있습니다.
A
안녕하십니까, 유남길님
표준프레임워크센터입니다.
표준프레임워크센터에서는 스프링 시큐리티에 대해 프레임워크 형식으로 제공하고 있습니다.
기능에 대한 커스터마이징 및 추가적인 업무에 대해서는 가이드하고 있지 않으며,
프로젝트 사업단 내부에서 업무적인 판단 아래 프로젝트를 구현해주시기 바랍니다.
표준프레임워크 인증 관련한 세션 관리 및 설정에 대한 내용을 아래 위키가이드에서 참고해주시기 바랍니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:server_security:authentication
감사합니다.
표준프레임워크센터입니다.
표준프레임워크센터에서는 스프링 시큐리티에 대해 프레임워크 형식으로 제공하고 있습니다.
기능에 대한 커스터마이징 및 추가적인 업무에 대해서는 가이드하고 있지 않으며,
프로젝트 사업단 내부에서 업무적인 판단 아래 프로젝트를 구현해주시기 바랍니다.
표준프레임워크 인증 관련한 세션 관리 및 설정에 대한 내용을 아래 위키가이드에서 참고해주시기 바랍니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:server_security:authentication
감사합니다.