메뉴 건너띄기
상단메뉴 바로가기
본문 바로가기

이 누리집은 대한민국 공식 전자정부 누리집입니다.

본문 영역

적용 지원, FAQ, Q&A 게시판을 통해 기술 문제 해결을 지원합니다.

묻고 답하기

스프링 시큐리티에서 세션 재적용 방법
  • 작성자

    박*환

  • 작성일

    2012-09-07 16:09:19

  • 조회수

    2,047

  • 구분

    실행환경

  • 진행상태

    완료

질문

지금 프로젝트에는 한아이디에 2개의 부서를 등록을 할 수 있게 되어 있습니다.

그래서 한 아이디로 로그인은 되고 나서 부서를 선택하게 되면 해당 부서에 맞게 세션이 변경이 되어야 합니다.

그래서 변경을 하려면 j_spring_security_check 으로 usersByUsernameQuery 과 authoritiesByUsernameQuery 를 다시
적용이 필요 한것 같은데요

각각 보면 파라미터 받는게 한개 있습니다.

j_spring_security_check에서 받는 j_username 와 j_password는 usersByUsernameQuery 와 authoritiesByUsernameQuery 는 서로 연결되는것 같은데요

정확히 어떻게 매칭이 되는지 알고 싶습니다.

결론적으로 /j_spring_security_check?j_username=&j_password= URL로 httpResponse.sendRedirect 를 하면 되는게

맞는지 알고 싶습니다.

답변

안녕하세요.. 박기환님..

우선.. spring security 자체 설정 상에는 부서에 대한 정보가 없기 때문에.. usersByUsernameQuery나 authoritiesByUsernameQuery를 수정하실 필요는 없으실 것 같습니다. 사용자 정보를 담는 usersByUsernameQuery 부분 수정이 필요하나.. 동적으로 부서정보를 변경할 수 없는 이유도 있습니다.

이 경우는 로그인 후에.. security context 상에 포함되어 있는 사용자 정보를 가져와서.. 해당 VO의 부서 정보를 변경하시는 방법이 맞을 것 같습니다.

또는.. jdbcService는 확장해셔서.. mapClass에 추가적인 파리미터를 넘기고.. mapClass 내부에서.. 해당 정보를 가지고.. security contex에 담아질 VO를 리턴하시는 방법도 있지만.. 좀 복잡하게 구성될 것 같습니다.

그럼.. 즐거운 하루되십시오.
감사합니다.

이 페이지의 구성

묻고 답하기