GPKI 로그인시 로그인로그 생성관련 문제
- 작성자 :
- 이*문
- 작성일 :
- 2011-12-26 10:37:01
- 조회수 :
- 2,437
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
안녕하세요? 국가기록원 재난복구시스템 개발팀 이재문 입니다.
2011년 사업시 보안관련 요건으로 일반로그인 기능을 제거하고, GPKI 인증서 로그인만 사용하는것으로 시스템이 변경되었습니다.
고객검수 과정에서 GPKI 로그인시 로그인로그(COMTNLOGINLOG)중 로그인ID, 로그인IP가 생성되지 않는 이슈가 있어 질문을 드립니다.
GPKI 인증서 로그인시 encryptedData 만 서버단에서 수신이 가능하고,
id / password 가 없는 경우이므로 기존 전자정부 프레임워크 로직상으론 인증된 사용자정보를 찾을수 없어
Anonymous 로그인으로 처리되어 로그인ID, 로그인IP가 생성되지 않는것 같습니다.
또한, 저희 로그인 메서드를 호출하기전 egovframe interceptor 클래스가 처리하는 부분이라 저희 임의로직을 추가하기도 어려운 구조입니다.
GPKI 인증서 로그인시 egovframework.com.sec.ram.security.userdetails.util.EgovUserDetailsHelper 클래스의 isAuthenticated() 메서드에서
username 이 'roleAnonymous' 로 처리되어 false 리턴되면,
egovframework.com.sym.log.service.EgovLogManageAspect 클래스 logLogin() 메서드에서 uniqId, ip 설정이 안되어 생성이 안됩니다.
관리자 입장에서는 일반로그인이던, GPKI 인증서 로그인이던 누가 언제 접속했는지 로그 모니터링이 필요할 것 같은데,
GPKI 인증시 로그인로그에 로그인ID, 로그인IP 가 생성되게 할려면 어떤 부분을 어떻게 변경해야 하는지 가이드 부탁드립니다.
방안1. GPKI 인증서 로그인시는 로직상 접속로그 생성이 불가하다.
방안2. 기존 egovframework (v1.0.0) 소스 변경으로 가능하다.
방안3. 전자정부 프레임워크 버젼 업그레이드가 필요하다
감사합니다..
------------------------------------
참고로, 저희 시스템 환경은 다음과 같습니다.
O/S : Window Server 2008
WAS : Jeus 6.0
DB : Oracle 10g
Java : 1.5.0_22
egovframework : v1.0.0 (2010년 04월 말경 www.egovframe.go.kr 에서 다운로드)
2011년 사업시 보안관련 요건으로 일반로그인 기능을 제거하고, GPKI 인증서 로그인만 사용하는것으로 시스템이 변경되었습니다.
고객검수 과정에서 GPKI 로그인시 로그인로그(COMTNLOGINLOG)중 로그인ID, 로그인IP가 생성되지 않는 이슈가 있어 질문을 드립니다.
GPKI 인증서 로그인시 encryptedData 만 서버단에서 수신이 가능하고,
id / password 가 없는 경우이므로 기존 전자정부 프레임워크 로직상으론 인증된 사용자정보를 찾을수 없어
Anonymous 로그인으로 처리되어 로그인ID, 로그인IP가 생성되지 않는것 같습니다.
또한, 저희 로그인 메서드를 호출하기전 egovframe interceptor 클래스가 처리하는 부분이라 저희 임의로직을 추가하기도 어려운 구조입니다.
GPKI 인증서 로그인시 egovframework.com.sec.ram.security.userdetails.util.EgovUserDetailsHelper 클래스의 isAuthenticated() 메서드에서
username 이 'roleAnonymous' 로 처리되어 false 리턴되면,
egovframework.com.sym.log.service.EgovLogManageAspect 클래스 logLogin() 메서드에서 uniqId, ip 설정이 안되어 생성이 안됩니다.
관리자 입장에서는 일반로그인이던, GPKI 인증서 로그인이던 누가 언제 접속했는지 로그 모니터링이 필요할 것 같은데,
GPKI 인증시 로그인로그에 로그인ID, 로그인IP 가 생성되게 할려면 어떤 부분을 어떻게 변경해야 하는지 가이드 부탁드립니다.
방안1. GPKI 인증서 로그인시는 로직상 접속로그 생성이 불가하다.
방안2. 기존 egovframework (v1.0.0) 소스 변경으로 가능하다.
방안3. 전자정부 프레임워크 버젼 업그레이드가 필요하다
감사합니다..
------------------------------------
참고로, 저희 시스템 환경은 다음과 같습니다.
O/S : Window Server 2008
WAS : Jeus 6.0
DB : Oracle 10g
Java : 1.5.0_22
egovframework : v1.0.0 (2010년 04월 말경 www.egovframe.go.kr 에서 다운로드)
A
안녕하세요.. 이재문님..
EgovLogManageAspect에서의 로그인 로그는 Spring security를 통해 처리되기 때문에..
단순히 GPKI로만 로그인(spring security 미적용)을 하시게 되면.. 해당되는 정보를 얻으실 수 없습니다.
그러나.. 공통컴포넌트 처럼.. GPKI 인증서 DN 추출 후.. 해당 사용자 정보를 가져와서.. 그 사용자로 로그인을 처리한 spring security를 적용하셨다면.. 가능할 것 같습니다.
기존 EgovLogManageAspect를 참조하셔서 다음과 같이 적용하시면 되실 것 같습니다.
1. 로그인이 성공한 후에 처리되는 서비스를 찾거나 새롭게 생성..
2. 해당 메소드에 반드시 HttpServletRequest를 파라미터로 지정
3. Aspect 생성 (EgovLogManageAspect 참조..)
- 이때.. 해당 메소드의 파라미터에 JoinPoint 파리미터 지정해야.. 위의 2번 HttpServletRequest를 가져올 수 있음)
- HttpServetRequest로 부터 IP를 얻음..
- 나머지 정보는 위 1에서 정의한 서비스의 파라미터로 지정(ID 등)
4. AOP 정의 (before 방식,으로 egov-com-loginapo.xml 참조)
AOP에 대한 처리 부분은 실행환경 가이드를 참조하십시오..
그럼.. 즐거운 하루되십시오.
감사합니다.
EgovLogManageAspect에서의 로그인 로그는 Spring security를 통해 처리되기 때문에..
단순히 GPKI로만 로그인(spring security 미적용)을 하시게 되면.. 해당되는 정보를 얻으실 수 없습니다.
그러나.. 공통컴포넌트 처럼.. GPKI 인증서 DN 추출 후.. 해당 사용자 정보를 가져와서.. 그 사용자로 로그인을 처리한 spring security를 적용하셨다면.. 가능할 것 같습니다.
기존 EgovLogManageAspect를 참조하셔서 다음과 같이 적용하시면 되실 것 같습니다.
1. 로그인이 성공한 후에 처리되는 서비스를 찾거나 새롭게 생성..
2. 해당 메소드에 반드시 HttpServletRequest를 파라미터로 지정
3. Aspect 생성 (EgovLogManageAspect 참조..)
- 이때.. 해당 메소드의 파라미터에 JoinPoint 파리미터 지정해야.. 위의 2번 HttpServletRequest를 가져올 수 있음)
- HttpServetRequest로 부터 IP를 얻음..
- 나머지 정보는 위 1에서 정의한 서비스의 파라미터로 지정(ID 등)
4. AOP 정의 (before 방식,으로 egov-com-loginapo.xml 참조)
AOP에 대한 처리 부분은 실행환경 가이드를 참조하십시오..
그럼.. 즐거운 하루되십시오.
감사합니다.