From 3e7e37f5f67dd44cae7270e800ff1ed749a0c1e3 Mon Sep 17 00:00:00 2001 From: Nico Alt Date: Fri, 19 Feb 2021 12:00:00 +0000 Subject: [PATCH] Include pending contact id in error response --- briar-headless/README.md | 1 + .../briar/headless/contact/ContactControllerImpl.kt | 7 +++++-- .../headless/contact/ContactControllerIntegrationTest.kt | 3 +++ .../briar/headless/contact/ContactControllerTest.kt | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/briar-headless/README.md b/briar-headless/README.md index 812b7b2b5..3b37bd571 100644 --- a/briar-headless/README.md +++ b/briar-headless/README.md @@ -175,6 +175,7 @@ possible attack. ```json { "error": "PENDING_EXISTS", + "pendingContactId": "jsTgWcsEQ2g9rnomeK1g/hmO8M1Ix6ZIGWAjgBtlS9U=", "pendingContactAlias": "Alice" } ``` diff --git a/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt b/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt index 8a7328252..168520e56 100644 --- a/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt +++ b/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt @@ -117,8 +117,11 @@ constructor( return ctx.json(details) } catch (e: PendingContactExistsException) { ctx.status(FORBIDDEN_403) - val details = - mapOf("error" to "PENDING_EXISTS", "pendingContactAlias" to e.pendingContact.alias) + val details = mapOf( + "error" to "PENDING_EXISTS", + "pendingContactId" to e.pendingContact.id.bytes, + "pendingContactAlias" to e.pendingContact.alias + ) return ctx.json(details) } return ctx.json(pendingContact.output()) diff --git a/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerIntegrationTest.kt b/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerIntegrationTest.kt index 65a85c1fb..ee88dfce1 100644 --- a/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerIntegrationTest.kt +++ b/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerIntegrationTest.kt @@ -132,9 +132,12 @@ class ContactControllerIntegrationTest: IntegrationTest() { var response = post("$url/contacts/add/pending", json) assertEquals(200, response.statusCode) + val pendingContactId = response.jsonObject.getString("pendingContactId") + response = post("$url/contacts/add/pending", json) assertEquals(403, response.statusCode) assertEquals("PENDING_EXISTS", response.jsonObject.getString("error")) + assertEquals(pendingContactId, response.jsonObject.getString("pendingContactId")) assertEquals(alias, response.jsonObject.getString("pendingContactAlias")) } diff --git a/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerTest.kt b/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerTest.kt index 4476f5a17..1f4c75cca 100644 --- a/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerTest.kt +++ b/briar-headless/src/test/java/org/briarproject/briar/headless/contact/ContactControllerTest.kt @@ -216,6 +216,7 @@ internal class ContactControllerTest : ControllerTest() { ctx.json( mapOf( "error" to "PENDING_EXISTS", + "pendingContactId" to pendingContact.id.bytes, "pendingContactAlias" to pendingContact.alias ) )