93 lines
3.2 KiB
Plaintext
93 lines
3.2 KiB
Plaintext
= 개인정보 사용 이력 관리
|
|
|
|
== 개요
|
|
사용자 정보를 조회한 이력을 남긴다. 관련 법에 따라 일정기간 동안 보관한다.
|
|
|
|
=== 사용자 정보 조회 이력 관리
|
|
* UserController에서 사용자 정보 관련 메서드 호출시, UserService의 writeUserHistoryLog 메서드를 호출하고 있다.
|
|
* log4j2.xml에 설정한 파일에 이력이 남는다.
|
|
|
|
.UserController.class
|
|
[source,java]
|
|
----
|
|
@Operation(summary = "사용자 목록 조회")
|
|
@GetMapping("/auth/users")
|
|
public PagingResult<User> getUserPagingList( @ModelAttribute UserSearchDto searchDto) {
|
|
|
|
PagingResult<User> resultPage = userService.getUserPagingList(searchDto);
|
|
|
|
// 개인정보조회 이력 남김
|
|
userService.writeUserHistoryLog(resultPage);
|
|
|
|
return resultPage;
|
|
}
|
|
|
|
@Operation(summary = "사용자 조회 (by EP ID)")
|
|
@GetMapping("/auth/users/{userId}")
|
|
public User userInfo(@Parameter(description = "EP ID", required = true) @PathVariable(required = true) String userId) {
|
|
|
|
User userInfo = userService.getUserById(userId);
|
|
|
|
// 개인정보조회 이력 남김
|
|
userService.writeUserHistoryLog(userInfo);
|
|
|
|
return userInfo;
|
|
}
|
|
----
|
|
|
|
.UserServiceImpl.class
|
|
[source,java]
|
|
----
|
|
@Override
|
|
public void writeUserHistoryLog(Object returnValue) {
|
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
|
|
String requestUri = request.getRequestURI();
|
|
String requestMethod = request.getMethod();
|
|
User user = Account.currentUser();
|
|
if(ObjectUtils.isNotEmpty(user)) { // 로그인된 사용자
|
|
try {
|
|
HistoryLog log = new HistoryLog();
|
|
log.setLogId(idGenService.getNextStringId());
|
|
log.setNodeId(nodeId);
|
|
if(ObjectUtils.isNotEmpty(user)) {
|
|
log.setWorkerId(user.getUserId());
|
|
log.setWorkerName(user.getUserName());
|
|
}
|
|
log.setWorkDatetime(DateTime.now().toString());
|
|
log.setRemoteAddr(webUtil.getClientIp(request));
|
|
log.setRequestMethod(requestMethod);
|
|
log.setRequestUri(requestUri);
|
|
log.setApiResult(returnValue);
|
|
|
|
String jsonVal = mapper.writeValueAsString(log);
|
|
USER_HISTORY_LOG.info(jsonVal);
|
|
} catch (JsonProcessingException e) {
|
|
log.warn(e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
----
|
|
|
|
.log4j2.xml
|
|
[source,xml]
|
|
----
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<Configuration status="INFO">
|
|
<Appenders>
|
|
<RollingFile name="UserHistoryAppender" fileName="/logs/history/user-history-${date:yyyy-MM-dd}-${hostName}.log"
|
|
filePattern="/logs/history/user-history-%d{yyyy-MM-dd}-${hostName}.log">
|
|
<PatternLayout>
|
|
<Pattern>%d %-5p [%t] %-17c{2} \(%13F:%L\) - %m%n</Pattern>
|
|
</PatternLayout>
|
|
<Policies>
|
|
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
|
|
</Policies>
|
|
</RollingFile>
|
|
</Appenders>
|
|
<Loggers>
|
|
<Logger name="UserHistoryLog" level="INFO" additivity="false">
|
|
<AppenderRef ref="UserHistoryAppender"/>
|
|
</Logger>
|
|
</Loggers>
|
|
</Configuration>
|
|
---- |