어제 로그인 소스에는 정작 로그인 다이얼로그에 대한 설명이 없었습니다.
로그인 다이얼로그는 일반적인 로그인 창으로 작성하면 되겠습니다.
중요 포인트는 로그인 후에 세션을 설정해 주는것에 있습니다.
이유는 아래에서 설명했던것처럼 시스템이 비정상적으로 종료되었을때를 대비하기 위함입니다. 물런 사용자가 적고, 리소스를 많이 사용하지 않는 시스템에서는 아무 문제가 없겠지만 말입니다. 정작 문제가 되면 처음으로 살펴봐야할 부분이지요.
개발환경 설정이 약간은 복잡하므로(개발 테스트는 jetty, 운영은 tomcat)로 하므로, 저는 로그인 후에 세션 타임아웃을 지정하는 코드로 작성 했습니다.(일반 web은 web.xml에 세션 타임아웃을 지정할 수 있습니다)
코드의 중요한 부분은 다음과 같습니다.
대략 디비에서 조회한 아이디/패스워드가 맞다면 다음과 같은 코드를 추가해 주어야 합니다.
// 로그인이 정상적으로 됐다고 생각한다.
if( seMasterInfo != null ) {
ISessionStore sessionStore = RWT.getSessionStore();
final String sessionId = sessionStore.getId();
logger.info("[New RAP Session creation ] [session id]" + sessionId + "[login id]" + txtID.getText());
ISessionStore ss = RWT.getSessionStore();
HttpSession hs = ss.getHttpSession();
hs.setMaxInactiveInterval( 24 * 60 * 60 ); // 24시간동안 세션설정한다.
이렇게 하면 세션이 expire될때에는 ApplicationWorkbenchWindowAdvisor#postWindowClose()가 호출 될 것입니다.
그리고 정상적인 종료를 눌렀을 경우에선 ApplicationWorkbenchWindowAdvisor#preWindowShellClose()가 호출 되겠지요.
댓글 없음:
댓글 쓰기