Skip to content

Commit cb5b3c2

Browse files
committed
CLAP-81 Fix: ClientIpParseUtil 사용하여 ipv4 저장
1 parent 65b9b6d commit cb5b3c2

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

src/main/java/clap/server/adapter/inbound/web/auth/AuthController.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import clap.server.adapter.inbound.security.SecurityUserDetails;
44
import clap.server.adapter.inbound.web.dto.auth.LoginRequest;
55
import clap.server.adapter.inbound.web.dto.auth.LoginResponse;
6+
import clap.server.adapter.outbound.persistense.entity.log.constant.LogStatus;
67
import clap.server.application.port.inbound.auth.LoginUsecase;
78
import clap.server.application.port.inbound.auth.LogoutUsecase;
89
import clap.server.common.annotation.architecture.WebAdapter;
10+
import clap.server.config.annotation.LogType;
911
import io.swagger.v3.oas.annotations.Operation;
1012
import io.swagger.v3.oas.annotations.Parameter;
1113
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -27,6 +29,7 @@ public class AuthController {
2729
private final LoginUsecase loginUsecase;
2830
private final LogoutUsecase logoutUsecase;
2931

32+
@LogType(LogStatus.LOGIN)
3033
@Operation(summary = "로그인 API")
3134
@PostMapping("/login")
3235
public ResponseEntity<LoginResponse> login(@RequestHeader(name = "sessionId") String sessionId,

src/main/java/clap/server/config/aop/LoggingAspect.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public Object logApiRequests(ProceedingJoinPoint joinPoint) throws Throwable {
5757
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
5858
LogStatus logType = getLogType(methodSignature);
5959
String customCode = getCustomCode(response);
60-
60+
//TODO: ipv4 형식으로 변환
6161
if (logType != null) {
6262
if (LogStatus.LOGIN.equals(logType)) {
6363
createAnonymousLogsUsecase.createAnonymousLog(request, response, result, logType, customCode, getRequestBody(request), getNicknameFromRequestBody(request));
@@ -84,11 +84,13 @@ private LogStatus getLogType(MethodSignature methodSignature) {
8484
}
8585
}
8686

87+
//TODO: 로그인 시도에 대한 에러 잡도록 수정
8788
private String getCustomCode(HttpServletResponse response) {
8889
String customCode = ErrorContext.getCustomCode();
8990
return customCode != null ? customCode : "CUSTOM" + (response != null ? response.getStatus() : 500);
9091
}
9192

93+
//TODO: 로그인 시도 시 닉네임 파싱하도록 수정
9294
private String getNicknameFromRequestBody(HttpServletRequest request) {
9395
try {
9496
String requestBody = getRequestBody(request);
@@ -99,6 +101,7 @@ private String getNicknameFromRequestBody(HttpServletRequest request) {
99101
}
100102
}
101103

104+
//TODO: 제거
102105
private String getRequestBody(HttpServletRequest request) {
103106
try {
104107
ContentCachingRequestWrapper cachingRequest = (ContentCachingRequestWrapper) request;

src/main/java/clap/server/domain/model/log/AnonymousLog.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package clap.server.domain.model.log;
22

33
import clap.server.adapter.outbound.persistense.entity.log.constant.LogStatus;
4+
import clap.server.common.utils.ClientIpParseUtil;
45
import jakarta.servlet.http.HttpServletRequest;
56
import jakarta.servlet.http.HttpServletResponse;
67
import lombok.Getter;
@@ -17,13 +18,13 @@ public class AnonymousLog extends ApiLog {
1718

1819
public static AnonymousLog createAnonymousLog(HttpServletRequest request, HttpServletResponse response, Object responseResult, LogStatus logStatus, String customCode, String requestBody, String nickName) {
1920
return AnonymousLog.builder()
20-
.clientIp(request.getRemoteAddr())
21+
.clientIp(ClientIpParseUtil.getClientIp(request))
2122
.requestUrl(request.getRequestURI())
2223
.requestMethod(request.getMethod())
2324
.statusCode(response.getStatus())
2425
.customStatusCode(customCode)
2526
.requestBody(requestBody)
26-
.responseBody(responseResult != null ? responseResult.toString() : "UNKNOWN")
27+
.responseBody(responseResult != null ? responseResult.toString() : "로그인 실패")
2728
.requestAt(LocalDateTime.now())
2829
.logStatus(logStatus)
2930
.loginNickname(nickName)

src/main/java/clap/server/domain/model/log/MemberLog.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package clap.server.domain.model.log;
22

33
import clap.server.adapter.outbound.persistense.entity.log.constant.LogStatus;
4+
import clap.server.common.utils.ClientIpParseUtil;
45
import clap.server.domain.model.member.Member;
56
import jakarta.servlet.http.HttpServletRequest;
67
import jakarta.servlet.http.HttpServletResponse;
@@ -18,7 +19,7 @@ public class MemberLog extends ApiLog {
1819

1920
public static MemberLog createMemberLog(HttpServletRequest request, HttpServletResponse response, Object responseResult, LogStatus logStatus, String customCode, String requestBody, Member member) {
2021
return MemberLog.builder()
21-
.clientIp(request.getRemoteAddr())
22+
.clientIp(ClientIpParseUtil.getClientIp(request))
2223
.requestUrl(request.getRequestURI())
2324
.requestMethod(request.getMethod())
2425
.statusCode(response.getStatus())

0 commit comments

Comments
 (0)