====== 로그인로그조회 ====== ===== 개요 ===== **로그인로그조회**는 사용자가 시스템 로그인/아웃한 로그를 검색, 조회하는 기능을 제공한다. ===== 설명 ===== * **로그인로그조회**는 로그인로그의 **등록, 조회, 목록**의 기능을 수반한다. ① 로그인로그등록 : 로그인로그정보를 등록한다. - AOP 기능을 이용 ② 로그인로그조회 : 로그인로그정보의 상세내용을 조회한다. ③ 로그인로그목록 : 로그인로그정보의 목록을 검색, 조회한다. ===== 관련 리소스 ===== === 클래스 === ^유형^대상소스명^비고^ |Controller|egovframework.com.sym.log.web.EgovLogManageController.java|로그인로그 관리를 위한 컨트롤러 클래스| |Service|egovframework.com.sym.log.service.EgovLogManageService.java|로그인로그 관리를 위한 서비스 인터페이스| |ServiceImpl|egovframework.com.sym.log.service.impl.EgovLogManageServiceImpl.java|로그인로그 관리를 위한 서비스 구현 클래스| |DAO|egovframework.com.sym.log.service.impl.LogManageDAO.java|로그인로그 관리를 위한 데이터처리 클래스| |VO|egovframework.com.sym.log.service.LoginLogVO.java|로그인로그 관리를 위한 VO 클래스| |Aspect|egovframework.com.sym.log.service.EgovLogManageAspect.java|로그인로그 등록을 위한 Aspect 클래스| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/log/EgovLoginLogList.jsp|로그인로그 목록을 위한 jsp페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/log/EgovLoginLogInqire.jsp|로그인로그 조회를 위한 jsp페이지| === 클래스 다이어그램 === {{:egovframework:com:sym:log:cdd_로그인로그관리.gif|}} === 테이블 === ^테이블명^테이블명(영문)^비고^ |로그인로그|COMTNLOGINLOG|로그인로그 정보를 관리| === ID Generation === == context-idgen.xml == * ID Generation Service를 활용하기 위해서 Sequence 저장테이블인 COMTECOPSEQ에 **LOGINLOG_ID** 항목을 추가한다. INSERT INTO COMTECOPSEQ VALUES('LOGINLOG_ID','0'); === AOP === == egov-com-loginaop.xml == 시스템로그 등록 기능구현을 위하여 [[egovframework:rte:fdl:aop|AOP]]를 설정한다. * 시스템로그 등록 기능구현을 위하여 EgovLogManageAspect 클래스를 생성한다. package egovframework.com.sym.log.service; import javax.annotation.Resource; import egovframework.com.sec.ram.security.userdetails.util.EgovUserDetailsHelper; import egovframework.com.uat.uia.service.LoginVO; public class EgovLogManageAspect { @Resource(name="EgovLogManageService") private EgovLogManageService logManageService; /** * 로그인 로그정보를 생성한다. * EgovLoginController.actionMain Method * * @param * @return void * @throws Exception */ public void logLogin() throws Throwable { String uniqId = ""; String ip = ""; /* Authenticated */ Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); if(isAuthenticated.booleanValue()) { LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); uniqId = user.getUniqId(); ip = user.getIp(); } LoginLog loginLog = new LoginLog(); loginLog.setLoginId(uniqId); loginLog.setLoginIp(ip); loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O loginLog.setErrOccrrAt("N"); loginLog.setErrorCode(""); logManageService.logInsertLoginLog(loginLog); } /** * 로그아웃 로그정보를 생성한다. * EgovLoginController.actionLogout Method * * @param * @return void * @throws Exception */ public void logLogout() throws Throwable { String uniqId = ""; String ip = ""; /* Authenticated */ Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); if(isAuthenticated.booleanValue()) { LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); uniqId = user.getUniqId(); ip = user.getIp(); } LoginLog loginLog = new LoginLog(); loginLog.setLoginId(uniqId); loginLog.setLoginIp(ip); loginLog.setLoginMthd("O"); // 로그인:I, 로그아웃:O loginLog.setErrOccrrAt("N"); loginLog.setErrorCode(""); logManageService.logInsertLoginLog(loginLog); } ===== 관련화면 및 수행메뉴얼 ===== === 로그인로그 목록조회 === ^Action^URL^Controller method^QueryID^ |목록조회|/cmm/sym/log/SelectLoginLogList.do|selectLoginLogInf|"LogManageDAO.selectLoginLogInf"| | | | |"LogManageDAO.selectLoginLogInfCnt"| 로그인로그 목록은 페이지 당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 발생일자와 로그유형에 대해서 수행된다. {{:egovframework:com::sym:log:EgovLoginLogList.jpg|}} 로그인로그 상세조회 기능을 수행하기 위해서는 **상세보기** 버튼을 클릭한다. ---- === 로그인로그 상세조회 === ^Action^URL^Controller method^QueryID^ |상세조회|/cmm/sym/log/InqireLoginLog.do|selectLoginLog|"LogManageDAO.selectLoginLog"| 로그인로그 상세조회는 팝업창으로 구성되며, **닫기** 버튼을 클릭하면 창을 닫는다. {{:egovframework:com::sym:log:EgovLoginLogInqire.jpg|}} ---- ===== 참고자료 ===== * 실행환경 참조 : [[egovframework:rte:fdl:aop|AOP]] * 실행환경 참조 : [[egovframework:rte:fdl:id_generation|ID Generation]]