From e84e1626ec65571271685dc8dd70bb584e9c6939 Mon Sep 17 00:00:00 2001 From: Peter Siegmund Date: Fri, 16 Aug 2024 23:47:09 +0200 Subject: [PATCH] trying header for clientIp Signed-off-by: Peter Siegmund --- .../timezone/web/controllers/TimeZoneController.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/web/controllers/TimeZoneController.java b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/web/controllers/TimeZoneController.java index 9474be0..9ff2fa8 100644 --- a/src/main/java/dev/mars3142/fhq/timezone_service/timezone/web/controllers/TimeZoneController.java +++ b/src/main/java/dev/mars3142/fhq/timezone_service/timezone/web/controllers/TimeZoneController.java @@ -3,11 +3,11 @@ package dev.mars3142.fhq.timezone_service.timezone.web.controllers; import dev.mars3142.fhq.timezone_service.timezone.domain.model.response.LocationResponse; import dev.mars3142.fhq.timezone_service.timezone.domain.model.response.TimeZoneResponse; import dev.mars3142.fhq.timezone_service.timezone.service.TimeZoneService; -import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.val; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -19,8 +19,9 @@ public class TimeZoneController { private final TimeZoneService timeZoneService; @GetMapping - public TimeZoneResponse getTimeZone(HttpServletRequest request) { - val ip = timeZoneService.getExternalIp(request.getRemoteAddr()); + public TimeZoneResponse getTimeZone(@RequestHeader(value = "X-Forwarded-For", defaultValue = "127.0.0.1") String data) { + val clientIp = data.split(",")[0]; + val ip = timeZoneService.getExternalIp(clientIp); val timezoneInfo = timeZoneService.getTimeZoneInfoByIp(ip); val posix = timeZoneService.getPosixTimeZone(timezoneInfo.timezone()); return new TimeZoneResponse(timezoneInfo.timezone(), timezoneInfo.abbreviation(), posix);