From 718cf32f14790cdf385ef05a372907008c02a69a Mon Sep 17 00:00:00 2001 From: Julian Raufelder Date: Wed, 19 Feb 2025 09:42:42 +0100 Subject: [PATCH] Send DeviceId to Hub during vault key retrieval See https://github.com/cryptomator/hub/pull/320 --- src/main/java/org/cryptomator/hubcli/Backend.java | 4 ++-- src/main/java/org/cryptomator/hubcli/VaultAddGroup.java | 2 +- src/main/java/org/cryptomator/hubcli/VaultAddUser.java | 2 +- src/main/java/org/cryptomator/hubcli/VaultCreateTemplate.java | 2 +- src/main/java/org/cryptomator/hubcli/VaultRecoveryKey.java | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/cryptomator/hubcli/Backend.java b/src/main/java/org/cryptomator/hubcli/Backend.java index 11afa94..b8d9d81 100644 --- a/src/main/java/org/cryptomator/hubcli/Backend.java +++ b/src/main/java/org/cryptomator/hubcli/Backend.java @@ -100,8 +100,8 @@ public HttpResponse grantAccess(UUID vaultId, Map member return sendRequest(httpClient, req, HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8), 200, 409); } - public HttpResponse getAccessToken(UUID vaultId) throws IOException, InterruptedException, UnexpectedStatusCodeException { - var vaultKeyReq = createRequest("vaults/" + vaultId + "/access-token").GET().build(); + public HttpResponse getAccessToken(UUID vaultId, String deviceId) throws IOException, InterruptedException, UnexpectedStatusCodeException { + var vaultKeyReq = createRequest("vaults/" + vaultId + "/access-token").header("deviceId", deviceId).GET().build(); try { return sendRequest(httpClient, vaultKeyReq, HttpResponse.BodyHandlers.ofString(StandardCharsets.US_ASCII), 200); } catch (UnexpectedStatusCodeException e) { diff --git a/src/main/java/org/cryptomator/hubcli/VaultAddGroup.java b/src/main/java/org/cryptomator/hubcli/VaultAddGroup.java index e876937..042b671 100644 --- a/src/main/java/org/cryptomator/hubcli/VaultAddGroup.java +++ b/src/main/java/org/cryptomator/hubcli/VaultAddGroup.java @@ -52,7 +52,7 @@ public Integer call() throws Exception { try (var backend = new Backend(parentCmd.accessToken.value, parentCmd.common.getApiBase())) { // get vault key - var vaultKeyJWE = backend.getVaultService().getAccessToken(vaultId).body(); + var vaultKeyJWE = backend.getVaultService().getAccessToken(vaultId, deviceId).body(); // get device info var device = backend.getDeviceService().get(deviceId); diff --git a/src/main/java/org/cryptomator/hubcli/VaultAddUser.java b/src/main/java/org/cryptomator/hubcli/VaultAddUser.java index 8c8d25c..5f24f5e 100644 --- a/src/main/java/org/cryptomator/hubcli/VaultAddUser.java +++ b/src/main/java/org/cryptomator/hubcli/VaultAddUser.java @@ -66,7 +66,7 @@ public Integer call() throws ParseException, GeneralSecurityException, Interrupt var memberPublicKey = KeyHelper.readX509EncodedEcPublicKey(memberPublicKeyBytes); // get vault key - var vaultKeyJWE = backend.getVaultService().getAccessToken(vaultId).body(); + var vaultKeyJWE = backend.getVaultService().getAccessToken(vaultId, deviceId).body(); // get device info var device = backend.getDeviceService().get(deviceId); diff --git a/src/main/java/org/cryptomator/hubcli/VaultCreateTemplate.java b/src/main/java/org/cryptomator/hubcli/VaultCreateTemplate.java index 7d56bc1..e3f1254 100644 --- a/src/main/java/org/cryptomator/hubcli/VaultCreateTemplate.java +++ b/src/main/java/org/cryptomator/hubcli/VaultCreateTemplate.java @@ -45,7 +45,7 @@ public Integer call() throws IOException, InterruptedException, GeneralSecurityE var vaultName = backend.getVaultService().get(vaultId).name(); // get vault key - var vaultKeyJWE = backend.getVaultService().getAccessToken(vaultId).body(); + var vaultKeyJWE = backend.getVaultService().getAccessToken(vaultId, deviceId).body(); // get device info var device = backend.getDeviceService().get(deviceId); diff --git a/src/main/java/org/cryptomator/hubcli/VaultRecoveryKey.java b/src/main/java/org/cryptomator/hubcli/VaultRecoveryKey.java index 8dbe28f..5f2629f 100644 --- a/src/main/java/org/cryptomator/hubcli/VaultRecoveryKey.java +++ b/src/main/java/org/cryptomator/hubcli/VaultRecoveryKey.java @@ -38,7 +38,7 @@ public Integer call() throws Exception { var deviceId = KeyHelper.getKeyId(deviceKeyPair.getPublic()); try (var backend = new Backend(parentCmd.accessToken.value, parentCmd.common.getApiBase())) { // get vault key - var vaultKeyJWE = backend.getVaultService().getAccessToken(vaultId).body(); + var vaultKeyJWE = backend.getVaultService().getAccessToken(vaultId, deviceId).body(); // get device info var device = backend.getDeviceService().get(deviceId);