From 78bedc45d72db2d74287db68ddd84327195a05b3 Mon Sep 17 00:00:00 2001 From: Lyn Long Date: Thu, 13 Nov 2025 11:17:12 +1100 Subject: [PATCH] fix 403 error in AIMS wfs download --- .../core/service/wfs/DownloadWfsDataService.java | 12 ++++++++++-- .../core/service/wfs/DownloadWfsDataServiceTest.java | 6 +++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/wfs/DownloadWfsDataService.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/wfs/DownloadWfsDataService.java index 02343ec1..b4292fb3 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/wfs/DownloadWfsDataService.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/wfs/DownloadWfsDataService.java @@ -7,6 +7,8 @@ import au.org.aodn.ogcapi.server.core.util.DatetimeUtils; import au.org.aodn.ogcapi.server.core.util.GeometryUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; @@ -25,17 +27,20 @@ public class DownloadWfsDataService { private final WfsServer wfsServer; private final RestTemplate restTemplate; private final WfsDefaultParam wfsDefaultParam; + private final HttpEntity pretendUserEntity; public DownloadWfsDataService( WmsServer wmsServer, WfsServer wfsServer, RestTemplate restTemplate, - WfsDefaultParam wfsDefaultParam + WfsDefaultParam wfsDefaultParam, + @Qualifier("pretendUserEntity") HttpEntity pretendUserEntity ) { this.wmsServer = wmsServer; this.wfsServer = wfsServer; this.restTemplate = restTemplate; this.wfsDefaultParam = wfsDefaultParam; + this.pretendUserEntity = pretendUserEntity; } /** @@ -174,7 +179,10 @@ public void executeWfsRequestWithSse( restTemplate.execute( wfsRequestUrl, HttpMethod.GET, - null, + request -> { + // Set headers from pretendUserEntity + request.getHeaders().addAll(pretendUserEntity.getHeaders()); + }, clientHttpResponse -> { // WFS server has responded! wfsServerResponded.set(true); diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/core/service/wfs/DownloadWfsDataServiceTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/core/service/wfs/DownloadWfsDataServiceTest.java index 1d848e44..82112a6b 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/core/service/wfs/DownloadWfsDataServiceTest.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/core/service/wfs/DownloadWfsDataServiceTest.java @@ -9,6 +9,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.http.HttpEntity; import org.springframework.web.client.RestTemplate; import java.util.ArrayList; @@ -38,12 +39,15 @@ public class DownloadWfsDataServiceTest { @Mock private WfsDefaultParam wfsDefaultParam; + @Mock + private HttpEntity pretendUserEntity; + private DownloadWfsDataService downloadWfsDataService; @BeforeEach public void setUp() { downloadWfsDataService = new DownloadWfsDataService( - wmsServer, wfsServer, restTemplate, wfsDefaultParam + wmsServer, wfsServer, restTemplate, wfsDefaultParam, pretendUserEntity ); }