개인정보조회 로그관리는 사용자가 개인정보를 조회한 로그 정보를 검색, 조회하는 기능을 제공한다.
개인정보조회 로그관리는 개인정보조회로그의 등록, 조회, 목록의 기능을 수반한다.
① 개인정보조회 로그 등록 : 개인정보조회 정보를 등록한다. - AOP 기능을 이용 ② 개인정보조회 로그 목록 : 개인정보조회 정보의 목록을 검색, 조회한다. ③ 개인정보조회 로그 조회 : 개인정보조회 정보의 상세내용을 조회한다.
개인정보조회 로그관리 패키지는 요소기술의 공통(cmm) 패키지에 대해서만 직접적인 함수적 참조 관계를 가진다. 하지만, 컴포넌트 배포 시 오
류 없이 실행되기 위하여 패키지 간의 참조관계에 따라 달력 패키지와 함께 배포 파일을 구성한다.
유형 | 대상소스명 | 비고 |
---|---|---|
Controller | egovframework.com.sym.log.plg.web.EgovPrivacyLogController.java | 개인정보조회 로그 관리를 위한 컨트롤러 클래스 |
Service | egovframework.com.sym.log.plg.service.EgovPrivacyLogService.java | 개인정보조회 로그 관리를 위한 서비스 인터페이스 |
ServiceImpl | egovframework.com.sym.log.plg.service.impl.EgovPrivacyLogServiceImpl.java | 개인정보조회 로그 관리를 위한 서비스 구현 클래스 |
Model | egovframework.com.sym.log.plg.service.PrivacyLog.java | 개인정보조회 로그 관리를 위한 VO 클래스 |
DAO | egovframework.com.sym.log.plg.service.impl.PrivacyLogDAO.java | 개인정보조회 로그 관리를 위한 데이터처리 클래스 |
Aspect | egovframework.com.sym.log.plg.service.EgovPrivacyLogAspect.java | 개인정보조회 로그 등록을 위한 Aspect 클래스 |
Config | egovframework.com.sym.log.plg.service.EgovPrivacyLogConfig.java | 개인정보조회 로그 관련 JavaConfig (ID Generation 설정 포함) |
JSP | /WEB-INF/jsp/egovframework/com/sym/log/plg/EgovPrivacyLogList.jsp | 개인정보조회 로그 목록을 위한 jsp페이지 |
JSP | /WEB-INF/jsp/egovframework/com/sym/log/plg/EgovPrivacyLogInqire.jsp | 개인정보조회 로그 조회를 위한 jsp페이지 |
QUERY XML | resources/egovframework/sqlmap/com/sym/log/plg/EgovPrivacyLog_SQL_Mysql.xml | 개인정보조회 로그 관리 MySQL용 QUERY XML |
QUERY XML | resources/egovframework/sqlmap/com/sym/log/plg/EgovPrivacyLog_SQL_Oracle.xml | 개인정보조회 로그 관리 Oracle용 QUERY XML |
QUERY XML | resources/egovframework/sqlmap/com/sym/log/plg/EgovPrivacyLog_SQL_Tibero.xml | 개인정보조회로그 관리 Tibero용 QUERY XML |
QUERY XML | resources/egovframework/sqlmap/com/sym/log/plg/EgovPrivacyLog_SQL_Altibase.xml | 개인정보조회로그 관리 Altibase용 QUERY XML |
QUERY XML | resources/egovframework/sqlmap/com/sym/log/plg/EgovPrivacyLog_SQL_Cubrid.xml | 개인정보조회로그 관리 Cubrid용 QUERY XML |
CREATE TABLE COMTECOPSEQ ( table_name varchar(16) NOT NULL, next_id DECIMAL(30) NOT NULL, PRIMARY KEY (table_name)); INSERT INTO COMTECOPSEQ VALUES('PRIVACYLOG_ID','0');
JavaConfig 방식으로 EgovPrivacyConfig 상에 다음과 같은 설정을 적용(변경)한다.
@Configuration public class EgovPrivacyConfig { @Resource(name = "egov.dataSource") DataSource dataSource; @Bean(destroyMethod = "destroy") public EgovIdGnrService egovPrivacyLogIdGnrService() { EgovIdGnrStrategyImpl strategy = new EgovIdGnrStrategyImpl(); strategy.setPrefix("PRVCY_"); strategy.setCipers(14); strategy.setFillChar('0'); EgovTableIdGnrServiceImpl idGnrService = new EgovTableIdGnrServiceImpl(); idGnrService.setDataSource(dataSource); idGnrService.setStrategy(strategy); idGnrService.setBlockSize(10); idGnrService.setTable("COMTECOPSEQ"); idGnrService.setTableName("PRIVACYLOG_ID"); return idGnrService; } }
또는 기존 방식과 같은 XML 기반의 ID Generation 서비스를 사용할 수 있다.
<bean name="egovPrivacyLogIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService" destroy-method="destroy"> <property name="dataSource" ref="dataSource" /> <property name="strategy" ref="privacyLogStrategy" /> <property name="blockSize" value="1"/> <property name="table" value="COMTECOPSEQ"/> <property name="tableName" value="PRIVACYLOG_ID"/> </bean> <bean name="privacyLogStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"> <property name="prefix" value="PRVCY_" /> <property name="cipers" value="14" /> <property name="fillChar" value="0" /> </bean>
테이블명 | 테이블명(영문) | 비고 |
---|---|---|
개인정보조회로그 | COMTNPRIVACYLOG | 개인정보조회 정보를 관리한다. |
<!-- Privacy Log Aspect --> <bean id="privacyLog" class="egovframework.com.sym.log.plg.service.EgovPrivacyLogAspect"> <property name="maxListCount" value="1" /> <property name="target"> <map> <entry key="mberNm" value="회원명"/> <entry key="moblphonNo" value="휴대폰번호"/> <entry key="emailAdres" value="이메일"/> <entry key="email" value="이메일"/> <entry key="orgnztNm" value="조직명"/> </map> </property> </bean> <aop:config> <aop:aspect id="privacyLogAspect" ref="privacyLog"> <!-- service Method --> <aop:after-returning returning="returnVal" pointcut="execution(public * egovframework.com..impl.*Impl.*(..)) && ! execution(public * egovframework.com.sym.log.plg.service.impl.EgovPrivacyLogServiceImpl.*(..)) && ! execution(public * egovframework.com.cmm.service.impl.EgovUserDetailsSessionServiceImpl.*(..)) && ! execution(public * egovframework.com.sym.log.wlg.service.impl.EgovWebLogServiceImpl.*(..)) && ! execution(public * egovframework.com.sym.log.lgm.service.impl.EgovSysLogServiceImpl.*(..))" method="insertLog" /> </aop:aspect> <!-- warning : 자체 서비스(EgovPrivacyLogServiceImpl) 및 내부 호출 서비스, 로그 처리 부분 제외 필요 --> </aop:config>
개인정보조회 로그 등록 기능구현을 위하여 AOP를 설정한다.
관련된 설정은 다음과 같다.
속성 | 의미 | 비고 |
---|---|---|
maxListCount | 리스트 형태로 조회된 경우 리스트에 대한 기록 건수 | |
target | Map으로 개인정보에 대한 속성(Map인 경우 key, VO의 경우 property에 해당)을 정의하고 기록시에 사용된 한글명칭을 지정 |
은 List<Map>, List<VO>, Map, VO의 4가지 유형임 |
pointcut 정의 부분은 대상에서 제외될 필요가 있는 서비스를 지정하며, 현재 위 4개의 서비스 호출은 반드시 제외시켜야 한다.
개인정보조회 로그관리는 개인정보조회 로그 목록조회, 개인정보조회 로그 상세조회 기능으로 구분된다.
로그인로그 목록은 페이지 당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 발생일자와 조회데이터에 대해서 수행된다.
N/A
Action | URL | Controller method | QueryID |
---|---|---|---|
목록조회 | /sym/log/plg/SelectPrivacyLogList.do | selectPrivacyLogList | “PrivacyLogDAO.selectPrivacyLogList”, |
“PrivacyLogDAO.selectPrivacyLogListCount” |
개인정보조회 로그 상세조회 기능을 수행하기 위해서는 상세보기 버튼을 클릭한다.
개인정보조회 로그 상세조회는 팝업창으로 구성되며, 닫기 버튼을 클릭하면 창을 닫는다.
N/A
Action | URL | Controller method | QueryID |
---|---|---|---|
상세조회 | /sym/log/plg/InqirePrivacyLog.do | selectWebLog | “PrivacyLogDAO.selectPrivacyLog” |