trying header for clientIp

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2024-08-16 23:47:09 +02:00
parent 6926d9b261
commit e84e1626ec

View File

@@ -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.LocationResponse;
import dev.mars3142.fhq.timezone_service.timezone.domain.model.response.TimeZoneResponse; import dev.mars3142.fhq.timezone_service.timezone.domain.model.response.TimeZoneResponse;
import dev.mars3142.fhq.timezone_service.timezone.service.TimeZoneService; import dev.mars3142.fhq.timezone_service.timezone.service.TimeZoneService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.val; import lombok.val;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@@ -19,8 +19,9 @@ public class TimeZoneController {
private final TimeZoneService timeZoneService; private final TimeZoneService timeZoneService;
@GetMapping @GetMapping
public TimeZoneResponse getTimeZone(HttpServletRequest request) { public TimeZoneResponse getTimeZone(@RequestHeader(value = "X-Forwarded-For", defaultValue = "127.0.0.1") String data) {
val ip = timeZoneService.getExternalIp(request.getRemoteAddr()); val clientIp = data.split(",")[0];
val ip = timeZoneService.getExternalIp(clientIp);
val timezoneInfo = timeZoneService.getTimeZoneInfoByIp(ip); val timezoneInfo = timeZoneService.getTimeZoneInfoByIp(ip);
val posix = timeZoneService.getPosixTimeZone(timezoneInfo.timezone()); val posix = timeZoneService.getPosixTimeZone(timezoneInfo.timezone());
return new TimeZoneResponse(timezoneInfo.timezone(), timezoneInfo.abbreviation(), posix); return new TimeZoneResponse(timezoneInfo.timezone(), timezoneInfo.abbreviation(), posix);