From 3f65a7ff002ffe2d37cb1d0ab9cf3c4632de18a2 Mon Sep 17 00:00:00 2001 From: deiflaender Date: Tue, 21 Mar 2023 12:38:08 +0100 Subject: [PATCH] RED-6444: Download with onetime token uses tenant from request parameter --- .../external/api/impl/controller/DownloadController.java | 7 ++++++- .../service/v1/api/external/resource/DownloadResource.java | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java index 8ba1c6d35..2b071854b 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java @@ -262,13 +262,18 @@ public class DownloadController implements DownloadResource { @Override public ResponseEntity downloadFileUsingOTT(@PathVariable(OTT) String oneTimeToken, - @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline) { + @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, + @RequestParam(value = "tenantId") String tenantId) { + + TenantContext.setTenantId(tenantId); log.debug("downloadFileUsingOTT '{}'", oneTimeToken); var token = oneTimeTokenDownloadService.getToken(oneTimeToken); var downloadStatus = getDownloadStatus(token.getStorageId(), token.getUserId()); var fileDownloadStream = getFileForDownload(token.getStorageId(), token.getUserId()); + TenantContext.clear(); + return getResponseEntity(inline, fileDownloadStream, downloadStatus.getFilename(), MediaType.parseMediaType("application/zip")); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java index 1e7a870bb..056d7085d 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java @@ -84,6 +84,7 @@ public interface DownloadResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Download with this Id is no longer available"), @ApiResponse(responseCode = "400", description = "OTT is not valid")}) @GetMapping(value = REST_PATH + OTT_PATH + OTT_PATH_VARIABLE) ResponseEntity downloadFileUsingOTT(@PathVariable(OTT) String oneTimeToken, - @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline); + @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, + @RequestParam(value = "tenantId") String tenantId); }