목차

로그인로그조회

개요

로그인로그조회는 사용자가 시스템 로그인/아웃한 로그를 검색, 조회하는 기능을 제공한다.

설명

  ① 로그인로그등록 : 로그인로그정보를 등록한다. - AOP 기능을 이용
  ② 로그인로그조회 : 로그인로그정보의 상세내용을 조회한다.
  ③ 로그인로그목록 : 로그인로그정보의 목록을 검색, 조회한다.

관련 리소스

클래스

유형대상소스명비고
Controlleregovframework.com.sym.log.web.EgovLogManageController.java로그인로그 관리를 위한 컨트롤러 클래스
Serviceegovframework.com.sym.log.service.EgovLogManageService.java로그인로그 관리를 위한 서비스 인터페이스
ServiceImplegovframework.com.sym.log.service.impl.EgovLogManageServiceImpl.java로그인로그 관리를 위한 서비스 구현 클래스
DAOegovframework.com.sym.log.service.impl.LogManageDAO.java로그인로그 관리를 위한 데이터처리 클래스
VOegovframework.com.sym.log.service.LoginLogVO.java로그인로그 관리를 위한 VO 클래스
Aspectegovframework.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페이지

클래스 다이어그램

테이블

테이블명테이블명(영문)비고
로그인로그COMTNLOGINLOG로그인로그 정보를 관리

ID Generation

context-idgen.xml
  <bean name="egovLoginLogIdGnrService"
    class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService"
    destroy-method="destroy">
    <property name="dataSource" ref="dataSource" />
    <property name="strategy"   ref="loginLogStrategy" />
    <property name="blockSize"  value="1"/>
    <property name="table"      value="COMTECOPSEQ"/>
    <property name="tableName"  value="LOGINLOG_ID"/>
  </bean>
 
  <bean name="loginLogStrategy"
    class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
    <property name="prefix" value="LOGIN_" />
    <property name="cipers" value="14" />
    <property name="fillChar" value="0" />
  </bean>
  INSERT INTO COMTECOPSEQ VALUES('LOGINLOG_ID','0');
 

AOP

egov-com-loginaop.xml
  <bean id="logManage" class="egovframework.com.sym.log.service.EgovLogManageAspect" />
 
  <aop:config>
    <aop:aspect id="logManageAspect" ref="logManage">
      <!--  로그인 Method -->
      <aop:before pointcut="execution(public * egovframework.com.uat.uia.web.EgovLoginController.actionMain(..))" method="logLogin" />
      <!--  로그아웃 Method -->
      <aop:before pointcut="execution(public * egovframework.com.uat.uia.web.EgovLoginController.actionLogout(..))" method="logLogout" />
    </aop:aspect>
  </aop:config>

시스템로그 등록 기능구현을 위하여 AOP를 설정한다.

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);
  }

관련화면 및 수행메뉴얼

로그인로그 목록조회

ActionURLController methodQueryID
목록조회/cmm/sym/log/SelectLoginLogList.doselectLoginLogInf“LogManageDAO.selectLoginLogInf”
“LogManageDAO.selectLoginLogInfCnt”

로그인로그 목록은 페이지 당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 발생일자와 로그유형에 대해서 수행된다.

로그인로그 상세조회 기능을 수행하기 위해서는 상세보기 버튼을 클릭한다.


로그인로그 상세조회

ActionURLController methodQueryID
상세조회/cmm/sym/log/InqireLoginLog.doselectLoginLog“LogManageDAO.selectLoginLog”

로그인로그 상세조회는 팝업창으로 구성되며, 닫기 버튼을 클릭하면 창을 닫는다.


참고자료