스프링 시큐리티에서 세션 재적용 방법
- 작성자 :
- 박*환
- 작성일 :
- 2012-09-07 16:09:19
- 조회수 :
- 1,582
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
지금 프로젝트에는 한아이디에 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 를 하면 되는게
맞는지 알고 싶습니다.
그래서 한 아이디로 로그인은 되고 나서 부서를 선택하게 되면 해당 부서에 맞게 세션이 변경이 되어야 합니다.
그래서 변경을 하려면 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 를 하면 되는게
맞는지 알고 싶습니다.
A
안녕하세요.. 박기환님..
우선.. spring security 자체 설정 상에는 부서에 대한 정보가 없기 때문에.. usersByUsernameQuery나 authoritiesByUsernameQuery를 수정하실 필요는 없으실 것 같습니다. 사용자 정보를 담는 usersByUsernameQuery 부분 수정이 필요하나.. 동적으로 부서정보를 변경할 수 없는 이유도 있습니다.
이 경우는 로그인 후에.. security context 상에 포함되어 있는 사용자 정보를 가져와서.. 해당 VO의 부서 정보를 변경하시는 방법이 맞을 것 같습니다.
또는.. jdbcService는 확장해셔서.. mapClass에 추가적인 파리미터를 넘기고.. mapClass 내부에서.. 해당 정보를 가지고.. security contex에 담아질 VO를 리턴하시는 방법도 있지만.. 좀 복잡하게 구성될 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
우선.. spring security 자체 설정 상에는 부서에 대한 정보가 없기 때문에.. usersByUsernameQuery나 authoritiesByUsernameQuery를 수정하실 필요는 없으실 것 같습니다. 사용자 정보를 담는 usersByUsernameQuery 부분 수정이 필요하나.. 동적으로 부서정보를 변경할 수 없는 이유도 있습니다.
이 경우는 로그인 후에.. security context 상에 포함되어 있는 사용자 정보를 가져와서.. 해당 VO의 부서 정보를 변경하시는 방법이 맞을 것 같습니다.
또는.. jdbcService는 확장해셔서.. mapClass에 추가적인 파리미터를 넘기고.. mapClass 내부에서.. 해당 정보를 가지고.. security contex에 담아질 VO를 리턴하시는 방법도 있지만.. 좀 복잡하게 구성될 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.