From 2147e5fec23f3d3aa7f73a6da355f7e3bd68b582 Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Fri, 12 Nov 2021 10:33:07 +0100 Subject: [PATCH] Other fixes for special characters --- .../java/it/inaf/oats/vospace/FileServiceClient.java | 2 +- src/main/java/it/inaf/oats/vospace/UriService.java | 4 +--- src/main/resources/auth.properties | 2 +- .../it/inaf/oats/vospace/FileServiceClientTest.java | 10 +++++----- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/java/it/inaf/oats/vospace/FileServiceClient.java b/src/main/java/it/inaf/oats/vospace/FileServiceClient.java index d593893..5c8d746 100644 --- a/src/main/java/it/inaf/oats/vospace/FileServiceClient.java +++ b/src/main/java/it/inaf/oats/vospace/FileServiceClient.java @@ -54,7 +54,7 @@ public class FileServiceClient { public String startArchiveJob(Transfer transfer, String jobId) { - String target = transfer.getTarget().substring("vos://".length() + authority.length()); + String target = NodeUtils.getVosPath(transfer.getTarget()); String viewUri = transfer.getView().getUri(); diff --git a/src/main/java/it/inaf/oats/vospace/UriService.java b/src/main/java/it/inaf/oats/vospace/UriService.java index 03162bb..3b71864 100644 --- a/src/main/java/it/inaf/oats/vospace/UriService.java +++ b/src/main/java/it/inaf/oats/vospace/UriService.java @@ -181,8 +181,7 @@ public class UriService { private String getEndpoint(JobSummary job, Transfer transfer) { - String relativePath = StringUtils.uriDecode(URIUtils - .returnVosPathFromNodeURI(transfer.getTarget(), authority), StandardCharsets.UTF_8); + String relativePath = NodeUtils.getVosPath(transfer.getTarget()); User user = (User) servletRequest.getUserPrincipal(); String creator = user.getName(); @@ -204,7 +203,6 @@ public class UriService { case pullFromVoSpace: // Refresh relative path: it can differ in case of links followed relativePath = NodeUtils.getVosPath(node); - relativePath = StringUtils.uriDecode(relativePath, StandardCharsets.UTF_8); if (!NodeUtils.checkIfReadable(node, creator, groups)) { throw PermissionDeniedException.forPath(relativePath); } diff --git a/src/main/resources/auth.properties b/src/main/resources/auth.properties index 875059c..ace50d1 100644 --- a/src/main/resources/auth.properties +++ b/src/main/resources/auth.properties @@ -2,4 +2,4 @@ rap_uri=https://sso.ia2.inaf.it/rap-ia2 gms_uri=https://sso.ia2.inaf.it/gms/ groups_autoload=true client_id=vospace_test -client_secret=***REMOVED*** \ No newline at end of file +client_secret=***REMOVED*** diff --git a/src/test/java/it/inaf/oats/vospace/FileServiceClientTest.java b/src/test/java/it/inaf/oats/vospace/FileServiceClientTest.java index 9ec78b9..7664b94 100644 --- a/src/test/java/it/inaf/oats/vospace/FileServiceClientTest.java +++ b/src/test/java/it/inaf/oats/vospace/FileServiceClientTest.java @@ -101,23 +101,23 @@ public class FileServiceClientTest { Transfer transfer = new Transfer(); transfer.setDirection("pullFromVoSpace"); - transfer.setTarget("vos://example.com!vospace/mydir"); + transfer.setTarget("vos://example.com!vospace/mydir(%20+%20)x"); View view = new View(); view.setUri(Views.ZIP_VIEW_URI); transfer.setView(view); ContainerNode node = Mockito.mock(ContainerNode.class); when(node.getNodes()).thenReturn(List.of()); - when(node.getUri()).thenReturn("vos://example.com!vospace/mydir"); - when(nodeDAO.listNode(eq("/mydir"))).thenReturn(Optional.of(node)); + when(node.getUri()).thenReturn("vos://example.com!vospace/mydir(%20+%20)x"); + when(nodeDAO.listNode(eq("/mydir( + )x"))).thenReturn(Optional.of(node)); when(linkService.followLinksForArchiveService(any())) - .thenReturn(List.of(new ArchiveEntryDescriptor("/mydir"))); + .thenReturn(List.of(new ArchiveEntryDescriptor("/mydir( + )x"))); ArchiveRequest archiveRequest = testStartArchiveJob(transfer); assertEquals(1, archiveRequest.getEntryDescriptors().size()); - assertEquals("/mydir", archiveRequest.getEntryDescriptors().get(0).getTargetNodeVosPath()); + assertEquals("/mydir( + )x", archiveRequest.getEntryDescriptors().get(0).getTargetNodeVosPath()); } @Test -- GitLab