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

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

본문 영역

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

묻고 답하기

LoginVO
  • 작성자

    오*원

  • 작성일

    2010-09-10 11:39:07

  • 조회수

    3,554

  • 구분

    공통컴포넌트

  • 진행상태

    완료

질문

LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
이런식으로 하면 인증된 사용자에 대한 정보를 가지고 올수 있는걸로 알고 있습니다.

그런데 LoginVO 권한 값을 담으려고 authCode 라고 선언하고 Getter 하고 setter 다 선언 해주고 com/uat/uia/EgovLoginUsr_SQL_ORACLE.xml 에서도 가지고 올수 있도록 선언 해주었습니다.

로그인시에 보면 올바르게 log가 보입니다.

그런데 다른 Controller에서
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
선언 해주고 찍어 보면 찍히지가 않습니다.

위와 같은 방법을 통해 LoginVO 값을 다아두고 더 많은 사용자 정보를가지고 오려면 어떤 작업을 해줘야 하는지요

답변

안녕하세요.. 오석원님..

해당 query를 통해 LoginVO를 가져와지만.. 내부적으로 그 객체를 직접 로그인정보로 사용하지 않습니다.

로그인 사용자 정보를 추가하시고자 한다면.. 다음과 같이 처리하시면 됩니다.

1. context-security.xml (src/main/resources/egovframework/spring/)
jdbcUserService의 usersByUsernameQuery 속성에 필요한 사용자 정보(컬럼)을 추가합니다. (처음 3개만 Spring Security가 사용하고 나머지 컬럼들은 bypass함)

2. EgovSessionMapping 클래스 수정
위 jdbcUserService에 지정된 mapClass의 속성 클래스(공통컴포넌트의 경우 egovframework.com.sec.ram.security.common.EgovSessionMapping)를 보시면..
1번에 지정된 ResultSet을 파라미터로 넘기고 있습니다.
이 RS에서 컬럼 데이터를 뽑아서 LoginVO에 지정하고 있습니다.
이 부분에 추가된 컬럼을 LoginVO 속성으로 넣으시면 됩니다.

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

이 페이지의 구성

묻고 답하기