From 2498535aecdd6a97c65f0fff11b9eb1533f93988 Mon Sep 17 00:00:00 2001 From: tkuzynow Date: Wed, 23 Aug 2023 15:57:53 +0200 Subject: [PATCH 1/2] feat: fix file upload issue --- .../uploadservice/api/service/TenantHeaderSupplier.java | 7 +------ .../api/tenant/CustomHeaderTenantResolver.java | 2 +- .../api/tenant/CustomHeaderTenantResolverTest.java | 4 ++-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/caritas/cob/uploadservice/api/service/TenantHeaderSupplier.java b/src/main/java/de/caritas/cob/uploadservice/api/service/TenantHeaderSupplier.java index a7099fd..338b01d 100644 --- a/src/main/java/de/caritas/cob/uploadservice/api/service/TenantHeaderSupplier.java +++ b/src/main/java/de/caritas/cob/uploadservice/api/service/TenantHeaderSupplier.java @@ -8,8 +8,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; @Component @RequiredArgsConstructor @@ -26,10 +24,7 @@ public void addTenantHeader(HttpHeaders headers, Optional tenantId) { } } - public Optional getTenantFromHeader() { - HttpServletRequest request = - ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()) - .getRequest(); + public Optional getTenantFromHeader(HttpServletRequest request) { try { return Optional.of(Long.parseLong(request.getHeader("tenantId"))); } catch (NumberFormatException exception) { diff --git a/src/main/java/de/caritas/cob/uploadservice/api/tenant/CustomHeaderTenantResolver.java b/src/main/java/de/caritas/cob/uploadservice/api/tenant/CustomHeaderTenantResolver.java index f9ecbde..a61e9c1 100644 --- a/src/main/java/de/caritas/cob/uploadservice/api/tenant/CustomHeaderTenantResolver.java +++ b/src/main/java/de/caritas/cob/uploadservice/api/tenant/CustomHeaderTenantResolver.java @@ -15,7 +15,7 @@ public class CustomHeaderTenantResolver implements TenantResolver { @Override public Optional resolve(HttpServletRequest request) { - return tenantHeaderSupplier.getTenantFromHeader(); + return tenantHeaderSupplier.getTenantFromHeader(request); } @Override diff --git a/src/test/java/de/caritas/cob/uploadservice/api/tenant/CustomHeaderTenantResolverTest.java b/src/test/java/de/caritas/cob/uploadservice/api/tenant/CustomHeaderTenantResolverTest.java index 1ca1074..c9f3fc6 100644 --- a/src/test/java/de/caritas/cob/uploadservice/api/tenant/CustomHeaderTenantResolverTest.java +++ b/src/test/java/de/caritas/cob/uploadservice/api/tenant/CustomHeaderTenantResolverTest.java @@ -25,7 +25,7 @@ class CustomHeaderTenantResolverTest { @Test void resolve_Should_ResolveTenantId_When_SupplierCanResolveTenantId() { // given - when(tenantHeaderSupplier.getTenantFromHeader()).thenReturn(Optional.of(2L)); + when(tenantHeaderSupplier.getTenantFromHeader(request)).thenReturn(Optional.of(2L)); var resolved = customHeaderTenantResolver.resolve(request); // then assertThat(resolved).isEqualTo(Optional.of(2L)); @@ -34,7 +34,7 @@ void resolve_Should_ResolveTenantId_When_SupplierCanResolveTenantId() { @Test void resolve_Should_NotResolveTenantId_When_SupplierCannotResolveTenantId() { // given - when(tenantHeaderSupplier.getTenantFromHeader()).thenReturn(Optional.empty()); + when(tenantHeaderSupplier.getTenantFromHeader(request)).thenReturn(Optional.empty()); var resolved = customHeaderTenantResolver.resolve(request); // then assertThat(resolved).isEmpty(); From 204b2e719341c650c73f78bf035de84f48d28ce3 Mon Sep 17 00:00:00 2001 From: tkuzynow Date: Wed, 23 Aug 2023 16:17:41 +0200 Subject: [PATCH 2/2] feat: fix file upload issue --- .../uploadservice/api/tenant/SubdomainTenantResolver.java | 6 +++--- .../cob/uploadservice/filter/SubdomainExtractor.java | 6 ++---- .../api/tenant/SubdomainTenantResolverTest.java | 4 ++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/caritas/cob/uploadservice/api/tenant/SubdomainTenantResolver.java b/src/main/java/de/caritas/cob/uploadservice/api/tenant/SubdomainTenantResolver.java index e1a0bf9..89c0ffd 100644 --- a/src/main/java/de/caritas/cob/uploadservice/api/tenant/SubdomainTenantResolver.java +++ b/src/main/java/de/caritas/cob/uploadservice/api/tenant/SubdomainTenantResolver.java @@ -22,11 +22,11 @@ public class SubdomainTenantResolver implements TenantResolver { @Override public Optional resolve(HttpServletRequest request) { - return resolveTenantFromSubdomain(); + return resolveTenantFromSubdomain(request); } - private Optional resolveTenantFromSubdomain() { - Optional currentSubdomain = subdomainExtractor.getCurrentSubdomain(); + private Optional resolveTenantFromSubdomain(HttpServletRequest request) { + Optional currentSubdomain = subdomainExtractor.getCurrentSubdomain(request); if (currentSubdomain.isPresent()) { return of(getTenantIdBySubdomain(currentSubdomain.get())); } else { diff --git a/src/main/java/de/caritas/cob/uploadservice/filter/SubdomainExtractor.java b/src/main/java/de/caritas/cob/uploadservice/filter/SubdomainExtractor.java index fac2600..58cc196 100644 --- a/src/main/java/de/caritas/cob/uploadservice/filter/SubdomainExtractor.java +++ b/src/main/java/de/caritas/cob/uploadservice/filter/SubdomainExtractor.java @@ -3,16 +3,15 @@ import static java.util.Optional.empty; import static java.util.Optional.of; -import static org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes; import com.google.common.net.InternetDomainName; import de.caritas.cob.uploadservice.api.service.helper.HttpUrlUtils; import java.util.Optional; +import javax.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import org.springframework.web.context.request.ServletRequestAttributes; @Component @Setter @@ -20,8 +19,7 @@ @AllArgsConstructor public class SubdomainExtractor { - public Optional getCurrentSubdomain() { - var request = ((ServletRequestAttributes) currentRequestAttributes()).getRequest(); + public Optional getCurrentSubdomain(HttpServletRequest request) { String url = HttpUrlUtils.removeHttpPrefix(request.getServerName()); return getSubdomain(url); } diff --git a/src/test/java/de/caritas/cob/uploadservice/api/tenant/SubdomainTenantResolverTest.java b/src/test/java/de/caritas/cob/uploadservice/api/tenant/SubdomainTenantResolverTest.java index 427a16e..80d922f 100644 --- a/src/test/java/de/caritas/cob/uploadservice/api/tenant/SubdomainTenantResolverTest.java +++ b/src/test/java/de/caritas/cob/uploadservice/api/tenant/SubdomainTenantResolverTest.java @@ -31,7 +31,7 @@ class SubdomainTenantResolverTest { @Test void resolve_should_resolveTenantId_When_SubdomainCouldBeDetermined() { // given - when(subdomainExtractor.getCurrentSubdomain()).thenReturn(Optional.of("mucoviscidose")); + when(subdomainExtractor.getCurrentSubdomain(httpServletRequest)).thenReturn(Optional.of("mucoviscidose")); when(tenantService.getRestrictedTenantDataBySubdomain("mucoviscidose")).thenReturn( new de.caritas.cob.uploadservice.tenantservice.generated.web.model.RestrictedTenantDTO() .id(1L)); @@ -46,7 +46,7 @@ void resolve_should_resolveTenantId_When_SubdomainCouldBeDetermined() { @Test void resolve_should_NotResolve_When_SubdomainIsEmpty() { // given - when(subdomainExtractor.getCurrentSubdomain()).thenReturn(Optional.empty()); + when(subdomainExtractor.getCurrentSubdomain(httpServletRequest)).thenReturn(Optional.empty()); // when Optional resolve = subdomainTenantResolver.resolve(httpServletRequest);