You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/12/19 10:38:40 UTC

[james-project] 06/14: JAMES-3012 Cleanup common components

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 92dc69aab9abf0392a242511f8b05425c5752a7e
Author: Tran Tien Duc <dt...@linagora.com>
AuthorDate: Fri Dec 13 15:38:21 2019 +0700

    JAMES-3012 Cleanup common components
---
 .../test/java/org/apache/james/ESReporterTest.java |   6 +-
 .../org/apache/james/FixingGhostMailboxTest.java   |  12 +-
 .../jmap/cassandra/CassandraBulkOperationTest.java |  16 +-
 .../CassandraGetMessageListMethodTest.java         |   4 +-
 .../jmap/cassandra/CassandraImapErrorTest.java     |   9 +-
 .../apache/james/jmap/HttpJmapAuthentication.java  |  74 ----
 .../apache/james/jmap/JMAPAuthenticationTest.java  |   4 +-
 .../org/apache/james/jmap/JmapCommonRequests.java  | 207 ----------
 .../java/org/apache/james/jmap/JmapURIBuilder.java |  11 +-
 .../org/apache/james/jmap/ProvisioningTest.java    |  18 +-
 .../org/apache/james/jmap/TestingConstants.java    |  69 ----
 .../apache/james/jmap/VacationIntegrationTest.java |  53 +--
 .../james/jmap/VacationRelayIntegrationTest.java   |   8 +-
 .../jmap/draft/methods/integration/FilterTest.java | 178 ++++-----
 .../integration/GetMailboxesMethodTest.java        |  96 ++---
 .../integration/GetMessageListMethodTest.java      | 212 +++++-----
 .../integration/GetVacationResponseTest.java       |  26 +-
 .../methods/integration/QuotaMailingTest.java      |  16 +-
 .../methods/integration/SendMDNMethodTest.java     |  40 +-
 .../integration/SetMailboxesMethodTest.java        | 180 ++++-----
 .../SetMessagesMethodReRoutingTest.java            |  16 +-
 .../methods/integration/SetMessagesMethodTest.java | 440 +++++++++++----------
 .../SetMessagesOutboxFlagUpdateTest.java           |  18 +-
 .../integration/SetVacationResponseTest.java       |  32 +-
 .../methods/integration/SpamAssassinContract.java  |  84 ++--
 .../integration/cucumber/DownloadStepdefs.java     |  12 +-
 .../cucumber/GetMailboxesMethodStepdefs.java       |   4 +-
 .../cucumber/GetMessageListMethodStepdefs.java     |   4 +-
 .../cucumber/GetMessagesMethodStepdefs.java        |   8 +-
 .../methods/integration/cucumber/HttpClient.java   |   2 +-
 .../cucumber/SetMailboxesMethodStepdefs.java       |   6 +-
 .../integration/cucumber/UploadStepdefs.java       |  12 +-
 .../methods/integration/cucumber/UserStepdefs.java |   2 +-
 .../integration/ForwardIntegrationTest.java        |   2 +-
 .../ReindexingWithEventDeadLettersTest.java        |   4 +-
 .../vault/DeletedMessageVaultIntegrationTest.java  |   2 +-
 ...LinshareBlobExportMechanismIntegrationTest.java |   2 +-
 ...mapURIBuilder.java => LocalHostURIBuilder.java} |   2 +-
 38 files changed, 760 insertions(+), 1131 deletions(-)

diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
index a1c1189..f854203 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
@@ -35,14 +35,14 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.net.imap.IMAPClient;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.store.search.PDFTextExtractor;
 import org.apache.james.modules.TestDockerESMetricReporterModule;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.modules.protocols.ImapGuiceProbe;
 import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.awaitility.Duration;
 import org.elasticsearch.action.search.SearchRequest;
 import org.elasticsearch.client.RestHighLevelClient;
@@ -138,7 +138,7 @@ class ESReporterTest {
             public void run() {
                 try {
                     given()
-                        .header("Authorization", accessToken.serialize())
+                        .header("Authorization", accessToken.asString())
                         .body("[[\"getMailboxes\", {}, \"#0\"]]")
                     .with()
                         .post("/jmap");
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/FixingGhostMailboxTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/FixingGhostMailboxTest.java
index 5531ae7..a51febe 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/FixingGhostMailboxTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/FixingGhostMailboxTest.java
@@ -42,7 +42,7 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.MessageManager.AppendCommand;
 import org.apache.james.mailbox.cassandra.mail.task.MailboxMergingTask;
@@ -168,7 +168,7 @@ public class FixingGhostMailboxTest {
 
         // trigger provisioning
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -199,7 +199,7 @@ public class FixingGhostMailboxTest {
         MailboxId newAliceInbox = mailboxProbe.getMailboxId(MailboxConstants.USER_NAMESPACE, ALICE, MailboxConstants.INBOX);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + newAliceInbox.serialize() + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -218,7 +218,7 @@ public class FixingGhostMailboxTest {
         fixGhostMailboxes(newAliceInbox);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + newAliceInbox.serialize() + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -239,7 +239,7 @@ public class FixingGhostMailboxTest {
         fixGhostMailboxes(newAliceInbox);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + newAliceInbox.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -258,7 +258,7 @@ public class FixingGhostMailboxTest {
         fixGhostMailboxes(newAliceInbox);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + aliceGhostInboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraBulkOperationTest.java b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraBulkOperationTest.java
index 55752e2..ac02f49 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraBulkOperationTest.java
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraBulkOperationTest.java
@@ -20,11 +20,11 @@
 package org.apache.james.jmap.cassandra;
 
 import static io.restassured.RestAssured.given;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.hasSize;
 
@@ -40,8 +40,9 @@ import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.core.Username;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.HttpJmapAuthentication;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.MessageManager.AppendCommand;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -49,7 +50,6 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mime4j.dom.Message;
 import org.apache.james.modules.MailboxProbeImpl;
 import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -93,7 +93,7 @@ public class CassandraBulkOperationTest {
 
         AccessToken accessToken = HttpJmapAuthentication.authenticateJamesUser(baseUri(jmapServer), Username.of(USERNAME), PASSWORD);
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"setMessages\", {\"destroy\": [" + mailIds + "]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -111,7 +111,7 @@ public class CassandraBulkOperationTest {
 
         AccessToken accessToken = HttpJmapAuthentication.authenticateJamesUser(baseUri(jmapServer), Username.of(USERNAME), PASSWORD);
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"setMessages\", {\"destroy\": [" + mailIds + "]}, \"#0\"]]")
         .when()
             .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraGetMessageListMethodTest.java b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraGetMessageListMethodTest.java
index fa9b3d7..9a4b681 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraGetMessageListMethodTest.java
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraGetMessageListMethodTest.java
@@ -20,7 +20,7 @@
 package org.apache.james.jmap.cassandra;
 
 import static io.restassured.RestAssured.given;
-import static org.apache.james.jmap.TestingConstants.ALICE;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE;
 
 import java.io.IOException;
 import java.util.Date;
@@ -70,7 +70,7 @@ public class CassandraGetMessageListMethodTest extends GetMessageListMethodTest
 
         try {
             given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"operator\":\"AND\",\"conditions\":[{\"isFlagged\":\"true\"},{\"isUnread\":\"true\"}]}}, \"#0\"]]")
             .when()
                 .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraImapErrorTest.java b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraImapErrorTest.java
index f152a12..b3e69d7 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraImapErrorTest.java
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraImapErrorTest.java
@@ -20,9 +20,9 @@
 package org.apache.james.jmap.cassandra;
 
 import static org.apache.james.CassandraJamesServerMain.ALL_BUT_JMX_CASSANDRA_MODULE;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.LOCALHOST_IP;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.LOCALHOST_IP;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.commons.net.imap.IMAPClient;
@@ -31,17 +31,16 @@ import org.apache.james.DockerElasticSearchExtension;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.JamesServerBuilder;
 import org.apache.james.JamesServerExtension;
-import org.apache.james.backends.cassandra.DockerCassandraExtension;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.store.search.PDFTextExtractor;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.modules.protocols.ImapGuiceProbe;
 import org.apache.james.utils.DataProbeImpl;
-
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+
 import io.restassured.RestAssured;
 
 class CassandraImapErrorTest {
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/HttpJmapAuthentication.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/HttpJmapAuthentication.java
deleted file mode 100644
index 7763209..0000000
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/HttpJmapAuthentication.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.jmap;
-
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.fluent.Request;
-import org.apache.http.client.fluent.Response;
-import org.apache.http.client.utils.URIBuilder;
-import org.apache.http.entity.ContentType;
-import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
-import org.hamcrest.core.IsAnything;
-
-import com.jayway.jsonpath.JsonPath;
-
-public class HttpJmapAuthentication {
-
-    public static AccessToken authenticateJamesUser(URIBuilder uriBuilder, Username username, String password) {
-        return calmlyAwait.until(
-            () -> doAuthenticate(uriBuilder, username, password), IsAnything.anything());
-    }
-
-    public static AccessToken doAuthenticate(URIBuilder uriBuilder, Username username, String password) throws ClientProtocolException, IOException, URISyntaxException {
-        String continuationToken = getContinuationToken(uriBuilder, username);
-
-        Response response = postAuthenticate(uriBuilder, password, continuationToken);
-
-        return AccessToken.fromString(
-            JsonPath.parse(response.returnContent().asString())
-                .read("accessToken"));
-    }
-
-    private static Response postAuthenticate(URIBuilder uriBuilder, String password, String continuationToken) throws ClientProtocolException, IOException, URISyntaxException {
-        return Request.Post(uriBuilder.setPath("/authentication").build())
-                .bodyString("{\"token\": \"" + continuationToken + "\", \"method\": \"password\", \"password\": \"" + password + "\"}", 
-                        ContentType.APPLICATION_JSON)
-                .setHeader("Accept", ContentType.APPLICATION_JSON.getMimeType())
-                .execute();
-    }
-
-    private static String getContinuationToken(URIBuilder uriBuilder, Username username) throws ClientProtocolException, IOException, URISyntaxException {
-        Response response = Request.Post(uriBuilder.setPath("/authentication").build())
-            .bodyString("{\"username\": \"" + username.asString() + "\", \"clientName\": \"Mozilla Thunderbird\", \"clientVersion\": \"42.0\", \"deviceName\": \"Joe Blogg’s iPhone\"}",
-                ContentType.APPLICATION_JSON)
-            .setHeader("Accept", ContentType.APPLICATION_JSON.getMimeType())
-            .execute();
-
-        return JsonPath.parse(response.returnContent().asString())
-            .read("continuationToken");
-    }
-
-}
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
index acb2973..e7931ee 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
@@ -20,7 +20,7 @@ package org.apache.james.jmap;
 
 import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.hamcrest.Matchers.both;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.hasItem;
@@ -34,9 +34,9 @@ import java.util.UUID;
 
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.categories.BasicFeature;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.jmap.draft.model.ContinuationToken;
 import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JmapCommonRequests.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JmapCommonRequests.java
deleted file mode 100644
index 9f3b01b..0000000
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JmapCommonRequests.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.jmap;
-
-import static io.restassured.RestAssured.with;
-import static org.hamcrest.Matchers.contains;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.hasKey;
-import static org.hamcrest.Matchers.hasSize;
-import static org.hamcrest.Matchers.not;
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.text.IsEmptyString.emptyOrNullString;
-
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import org.apache.james.jmap.api.access.AccessToken;
-import org.apache.james.mailbox.Role;
-import org.apache.james.mailbox.model.MailboxId;
-
-import io.restassured.builder.ResponseSpecBuilder;
-import io.restassured.path.json.JsonPath;
-import io.restassured.specification.ResponseSpecification;
-
-public class JmapCommonRequests {
-    private static final String NAME = "[0][0]";
-    private static final String ARGUMENTS = "[0][1]";
-    private static final String NOT_UPDATED = ARGUMENTS + ".notUpdated";
-
-    public static String getOutboxId(AccessToken accessToken) {
-        return getMailboxId(accessToken, Role.OUTBOX);
-    }
-
-    public static String getDraftId(AccessToken accessToken) {
-        return getMailboxId(accessToken, Role.DRAFTS);
-    }
-
-    public static String getMailboxId(AccessToken accessToken, Role role) {
-        return getAllMailboxesIds(accessToken).stream()
-            .filter(mailbox -> mailbox.get("role").equals(role.serialize()))
-            .map(mailbox -> mailbox.get("id"))
-            .findFirst().get();
-    }
-
-    public static List<Map<String, String>> getAllMailboxesIds(AccessToken accessToken) {
-        return with()
-            .header("Authorization", accessToken.serialize())
-            .body("[[\"getMailboxes\", {\"properties\": [\"role\", \"name\", \"id\"]}, \"#0\"]]")
-            .post("/jmap")
-        .andReturn()
-            .body()
-            .jsonPath()
-            .getList(ARGUMENTS + ".list");
-    }
-
-    public static boolean isAnyMessageFoundInRecipientsMailboxes(AccessToken recipientToken) {
-        try {
-            with()
-                .header("Authorization", recipientToken.serialize())
-                .body("[[\"getMessageList\", {}, \"#0\"]]")
-            .when()
-                .post("/jmap")
-            .then()
-                .statusCode(200)
-                .body(NAME, equalTo("messageList"))
-                .body(ARGUMENTS + ".messageIds", hasSize(1));
-            return true;
-
-        } catch (AssertionError e) {
-            return false;
-        }
-    }
-
-    public static boolean isAnyMessageFoundInRecipientsMailbox(AccessToken recipientToken, MailboxId mailboxId) {
-        try {
-            with()
-                .header("Authorization", recipientToken.serialize())
-                .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + mailboxId.serialize() + "\"]}}, \"#0\"]]")
-            .when()
-                .post("/jmap")
-            .then()
-                .statusCode(200)
-                .body(NAME, equalTo("messageList"))
-                .body(ARGUMENTS + ".messageIds", hasSize(1));
-            return true;
-
-        } catch (AssertionError e) {
-            return false;
-        }
-    }
-
-    public static String getInboxId(AccessToken accessToken) {
-        return getMailboxId(accessToken, Role.INBOX);
-    }
-
-    public static List<String> listMessageIdsForAccount(AccessToken accessToken) {
-        return with()
-                .header("Authorization", accessToken.serialize())
-                .body("[[\"getMessageList\", {}, \"#0\"]]")
-                .post("/jmap")
-            .then()
-                .extract()
-                .body()
-                .path(ARGUMENTS + ".messageIds");
-    }
-
-    public static String getLastMessageId(AccessToken accessToken) {
-        return with()
-                .header("Authorization", accessToken.serialize())
-                .body("[[\"getMessageList\", {\"sort\":[\"date desc\"]}, \"#0\"]]")
-                .post("/jmap")
-            .then()
-                .extract()
-                .body()
-                .path(ARGUMENTS + ".messageIds[0]");
-    }
-
-    public static String getLatestMessageId(AccessToken accessToken, Role mailbox) {
-        String inboxId = getMailboxId(accessToken, mailbox);
-        return with()
-                .header("Authorization", accessToken.serialize())
-                .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}, \"sort\":[\"date desc\"]}, \"#0\"]]")
-                .post("/jmap")
-            .then()
-                .extract()
-                .path(ARGUMENTS + ".messageIds[0]");
-    }
-
-    public static String bodyOfMessage(AccessToken accessToken, String messageId) {
-        return getMessageContent(accessToken, messageId)
-                .get(ARGUMENTS + ".list[0].textBody");
-    }
-
-    public static List<String> receiversOfMessage(AccessToken accessToken, String messageId) {
-        return getMessageContent(accessToken, messageId)
-                .getList(ARGUMENTS + ".list[0].to.email");
-    }
-
-    private static JsonPath getMessageContent(AccessToken accessToken, String messageId) {
-        return with()
-                .header("Authorization", accessToken.serialize())
-                .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
-            .when()
-                .post("/jmap")
-            .then()
-                .statusCode(200)
-                .body(NAME, equalTo("messages"))
-                .body(ARGUMENTS + ".list", hasSize(1))
-            .extract()
-                .jsonPath();
-    }
-
-    public static List<String> listMessageIdsInMailbox(AccessToken accessToken, String mailboxId) {
-        return with()
-                .header("Authorization", accessToken.serialize())
-                .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + mailboxId + "\"]}}, \"#0\"]]")
-                .post("/jmap")
-            .then()
-                .extract()
-                .body()
-                .path(ARGUMENTS + ".messageIds");
-    }
-
-    public static ResponseSpecification getSetMessagesUpdateOKResponseAssertions(String messageId) {
-        ResponseSpecBuilder builder = new ResponseSpecBuilder()
-            .expectStatusCode(200)
-            .expectBody(NAME, equalTo("messagesSet"))
-            .expectBody(ARGUMENTS + ".updated", hasSize(1))
-            .expectBody(ARGUMENTS + ".updated", contains(messageId))
-            .expectBody(ARGUMENTS + ".error", is(emptyOrNullString()))
-            .expectBody(NOT_UPDATED, not(hasKey(messageId)));
-        return builder.build();
-    }
-
-    public static void deleteMessages(AccessToken accessToken, List<String> idsToDestroy) {
-        String idString = concatMessageIds(idsToDestroy);
-
-        with()
-            .header("Authorization", accessToken.serialize())
-            .body("[[\"setMessages\", {\"destroy\": [" + idString + "]}, \"#0\"]]")
-            .post("/jmap");
-    }
-
-    public static String concatMessageIds(List<String> ids) {
-        return ids.stream()
-            .map(id -> "\"" + id + "\"")
-            .collect(Collectors.joining(","));
-    }
-}
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JmapURIBuilder.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JmapURIBuilder.java
index e0241b9..64de331 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JmapURIBuilder.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JmapURIBuilder.java
@@ -18,20 +18,15 @@
  ****************************************************************/
 package org.apache.james.jmap;
 
-import java.nio.charset.StandardCharsets;
-
 import org.apache.http.client.utils.URIBuilder;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
+import org.apache.james.util.Port;
 
 public class JmapURIBuilder {
 
     public static URIBuilder baseUri(GuiceJamesServer jamesServer) {
-        return new URIBuilder()
-            .setScheme("http")
-            .setHost("localhost")
-            .setPort(jamesServer.getProbe(JmapGuiceProbe.class)
-                .getJmapPort())
-            .setCharset(StandardCharsets.UTF_8);
+        return LocalHostURIBuilder.baseUri(
+            Port.of(jamesServer.getProbe(JmapGuiceProbe.class).getJmapPort()));
     }
 }
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
index 59c71bb..26bdf50 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
@@ -22,8 +22,8 @@ package org.apache.james.jmap;
 import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.hasItems;
@@ -35,11 +35,11 @@ import java.time.Duration;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
 import org.apache.james.jmap.categories.BasicFeature;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.modules.MailboxProbeImpl;
 import org.apache.james.util.concurrency.ConcurrentTestRunner;
 import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -53,10 +53,11 @@ public abstract class ProvisioningTest {
     private static final String DOMAIN = "mydomain.tld";
     private static final Username USER = Username.of("myuser@" + DOMAIN);
     private static final String PASSWORD = "secret";
-    
+
     protected abstract GuiceJamesServer createJmapServer() throws IOException;
 
     private GuiceJamesServer jmapServer;
+    private AccessToken userToken;
 
     @Before
     public void setup() throws Throwable {
@@ -70,6 +71,7 @@ public abstract class ProvisioningTest {
             .fluent()
             .addDomain(DOMAIN)
             .addUser(USER.asString(), PASSWORD);
+        userToken = authenticateJamesUser(baseUri(jmapServer), USER, PASSWORD);
     }
 
     @After
@@ -79,18 +81,16 @@ public abstract class ProvisioningTest {
 
     @Test
     public void provisionMailboxesShouldNotDuplicateMailboxByName() throws Exception {
-        String token = authenticateJamesUser(baseUri(jmapServer), USER, PASSWORD).serialize();
-
         ConcurrentTestRunner.builder()
             .operation((a, b) -> with()
-                .header("Authorization", token)
+                .header("Authorization", userToken.asString())
                 .body("[[\"getMailboxes\", {}, \"#0\"]]")
                 .post("/jmap"))
             .threadCount(10)
             .runSuccessfullyWithin(Duration.ofMinutes(1));
 
         given()
-            .header("Authorization", token)
+            .header("Authorization", userToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -104,10 +104,8 @@ public abstract class ProvisioningTest {
     @Category(BasicFeature.class)
     @Test
     public void provisionMailboxesShouldSubscribeToThem() throws Exception {
-        String token = authenticateJamesUser(baseUri(jmapServer), USER, PASSWORD).serialize();
-
         with()
-            .header("Authorization", token)
+            .header("Authorization", userToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
             .post("/jmap");
 
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/TestingConstants.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/TestingConstants.java
deleted file mode 100644
index 7ae5afd..0000000
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/TestingConstants.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.jmap;
-
-import static io.restassured.config.EncoderConfig.encoderConfig;
-import static io.restassured.config.RestAssuredConfig.newConfig;
-
-import java.nio.charset.StandardCharsets;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.james.core.Username;
-
-import org.awaitility.Awaitility;
-import org.awaitility.Duration;
-import org.awaitility.core.ConditionFactory;
-
-import io.restassured.builder.RequestSpecBuilder;
-import io.restassured.http.ContentType;
-
-public interface TestingConstants {
-    Duration slowPacedPollInterval = Duration.ONE_HUNDRED_MILLISECONDS;
-    Duration ONE_MILLISECOND = new Duration(1, TimeUnit.MILLISECONDS);
-
-    ConditionFactory calmlyAwait = Awaitility.with()
-        .pollInterval(slowPacedPollInterval)
-        .and().with()
-        .pollDelay(ONE_MILLISECOND)
-        .await();
-
-    RequestSpecBuilder jmapRequestSpecBuilder = new RequestSpecBuilder()
-        .setContentType(ContentType.JSON)
-        .setAccept(ContentType.JSON)
-        .setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)));
-
-    String NAME = "[0][0]";
-    String ARGUMENTS = "[0][1]";
-    String FIRST_MAILBOX = ARGUMENTS + ".list[0]";
-    String SECOND_MAILBOX = ARGUMENTS + ".list[1]";
-    String SECOND_NAME = "[1][0]";
-    String SECOND_ARGUMENTS = "[1][1]";
-
-    String DOMAIN = "domain.tld";
-    Username BOB = Username.of("bob@" + DOMAIN);
-    String BOB_PASSWORD = "123456";
-    Username ALICE = Username.of("alice@" + DOMAIN);
-    String ALICE_PASSWORD = "789123";
-    Username CEDRIC = Username.of("cedric@" + DOMAIN);
-    String CEDRIC_PASSWORD = "456789";
-
-
-    String LOCALHOST_IP = "127.0.0.1";
-}
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationIntegrationTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationIntegrationTest.java
index 9798a79..a39a5e2 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationIntegrationTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationIntegrationTest.java
@@ -22,13 +22,13 @@ package org.apache.james.jmap;
 import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.SECOND_ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.SECOND_NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.SECOND_ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.SECOND_NAME;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.hamcrest.Matchers.empty;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.hasSize;
@@ -40,7 +40,6 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.jmap.api.vacation.AccountId;
 import org.apache.james.jmap.api.vacation.VacationPatch;
 import org.apache.james.jmap.categories.BasicFeature;
@@ -69,6 +68,8 @@ public abstract class VacationIntegrationTest {
 
     private GuiceJamesServer guiceJamesServer;
     private JmapGuiceProbe jmapGuiceProbe;
+    private AccessToken user1AccessToken;
+    private AccessToken user2AccessToken;
 
     protected abstract GuiceJamesServer createJmapServer() throws IOException;
 
@@ -95,6 +96,9 @@ public abstract class VacationIntegrationTest {
         RestAssured.requestSpecification = jmapRequestSpecBuilder
             .setPort(jmapGuiceProbe.getJmapPort())
             .build();
+
+        user1AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_1, PASSWORD);
+        user2AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_2, PASSWORD);
     }
 
     @After
@@ -112,9 +116,6 @@ public abstract class VacationIntegrationTest {
             - User 2 should well receive a notification about user 1 vacation
         */
 
-        // Given
-        AccessToken user1AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_1, PASSWORD);
-        AccessToken user2AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_2, PASSWORD);
         // User 1 benw@mydomain.tld sets a Vacation on its account
         setVacationResponse(user1AccessToken);
 
@@ -134,9 +135,6 @@ public abstract class VacationIntegrationTest {
 
     @Test
     public void jmapVacationShouldGenerateAReplyEvenWhenNoText() throws Exception {
-        // Given
-        AccessToken user1AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_1, PASSWORD);
-        AccessToken user2AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_2, PASSWORD);
         jmapGuiceProbe.modifyVacation(
             AccountId.fromUsername(USER_1),
             VacationPatch.builder()
@@ -158,9 +156,6 @@ public abstract class VacationIntegrationTest {
 
     @Test
     public void jmapVacationShouldHaveSupportForHtmlMail() throws Exception {
-        // Given
-        AccessToken user1AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_1, PASSWORD);
-        AccessToken user2AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_2, PASSWORD);
         setHtmlVacationResponse(user1AccessToken);
 
         // When
@@ -182,10 +177,6 @@ public abstract class VacationIntegrationTest {
             - User 2 should not receive a notification
         */
 
-        // Given
-        AccessToken user1AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_1, PASSWORD);
-        AccessToken user2AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_2, PASSWORD);
-
         // When
         // User 2 matthieu@mydomain.tld sends User 1 a mail
         String user2OutboxId = getOutboxId(user2AccessToken);
@@ -198,7 +189,7 @@ public abstract class VacationIntegrationTest {
         // User 2 should not receive a notification
         Thread.sleep(1000L);
         with()
-            .header("Authorization", user2AccessToken.serialize())
+            .header("Authorization", user2AccessToken.asString())
             .body("[[\"getMessageList\", " +
                 "{" +
                 "  \"fetchMessages\": true, " +
@@ -223,9 +214,6 @@ public abstract class VacationIntegrationTest {
             - User 2 should well receive only one notification about user 1 vacation
         */
 
-        // Given
-        AccessToken user1AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_1, PASSWORD);
-        AccessToken user2AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_2, PASSWORD);
         // User 1 benw@mydomain.tld sets a Vacation on its account
         setVacationResponse(user1AccessToken);
 
@@ -254,9 +242,6 @@ public abstract class VacationIntegrationTest {
             - User 2 should well receive only one notification about user 1 vacation
         */
 
-        // Given
-        AccessToken user1AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_1, PASSWORD);
-        AccessToken user2AccessToken = authenticateJamesUser(baseUri(guiceJamesServer), USER_2, PASSWORD);
         // User 1 benw@mydomain.tld sets a Vacation on its account
         setVacationResponse(user1AccessToken);
         // User 2 matthieu@mydomain.tld sends User 1 a mail
@@ -292,7 +277,7 @@ public abstract class VacationIntegrationTest {
             "}, \"#0\"" +
             "]]";
         given()
-            .header("Authorization", user1AccessToken.serialize())
+            .header("Authorization", user1AccessToken.asString())
             .body(bodyRequest)
         .when()
             .post("/jmap")
@@ -314,7 +299,7 @@ public abstract class VacationIntegrationTest {
             "}, \"#0\"" +
             "]]";
         given()
-            .header("Authorization", user1AccessToken.serialize())
+            .header("Authorization", user1AccessToken.asString())
             .body(bodyRequest)
         .when()
             .post("/jmap")
@@ -339,7 +324,7 @@ public abstract class VacationIntegrationTest {
             "  ]" +
             "]";
         given()
-            .header("Authorization", user2AccessToken.serialize())
+            .header("Authorization", user2AccessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
@@ -348,7 +333,7 @@ public abstract class VacationIntegrationTest {
     private boolean areTwoTextMessageReceived(AccessToken recipientToken, String mailboxId) {
         try {
             with()
-                .header("Authorization", recipientToken.serialize())
+                .header("Authorization", recipientToken.asString())
                 .body("[[\"getMessageList\", " +
                     "{" +
                     "  \"fetchMessages\": true, " +
@@ -378,7 +363,7 @@ public abstract class VacationIntegrationTest {
 
     private void assertOneMessageReceived(AccessToken recipientToken, String mailboxId, String expectedTextBody, String expectedFrom, String expectedTo) {
         with()
-            .header("Authorization", recipientToken.serialize())
+            .header("Authorization", recipientToken.asString())
             .body("[[\"getMessageList\", " +
                 "{" +
                 "  \"fetchMessages\": true, " +
@@ -401,7 +386,7 @@ public abstract class VacationIntegrationTest {
     private boolean assertOneMessageWithHtmlBodyReceived(AccessToken recipientToken, String mailboxId, String expectedHtmlBody, String expectedFrom, String expectedTo) {
         try {
             with()
-                .header("Authorization", recipientToken.serialize())
+                .header("Authorization", recipientToken.asString())
                 .body("[[\"getMessageList\", " +
                     "{" +
                     "  \"fetchMessages\": true, " +
@@ -443,7 +428,7 @@ public abstract class VacationIntegrationTest {
 
     private List<Map<String, String>> getAllMailboxesIds(AccessToken accessToken) {
         return with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"properties\": [\"role\", \"id\"]}, \"#0\"]]")
             .post("/jmap")
         .andReturn()
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
index ae9a551..3bdb843 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.james.jmap;
 
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.LOCALHOST_IP;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.LOCALHOST_IP;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
 import static org.hamcrest.Matchers.equalTo;
 
 import java.io.IOException;
@@ -33,6 +33,7 @@ import org.apache.james.dnsservice.api.InMemoryDNSService;
 import org.apache.james.jmap.api.vacation.AccountId;
 import org.apache.james.jmap.api.vacation.VacationPatch;
 import org.apache.james.jmap.categories.BasicFeature;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.probe.MailboxProbe;
@@ -41,7 +42,6 @@ import org.apache.james.modules.protocols.SmtpGuiceProbe;
 import org.apache.james.probe.DataProbe;
 import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.FakeSmtp;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/FilterTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/FilterTest.java
index dfe76d6..2b377b0 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/FilterTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/FilterTest.java
@@ -22,18 +22,18 @@ package org.apache.james.jmap.draft.methods.integration;
 import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.CEDRIC;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ALICE;
-import static org.apache.james.jmap.TestingConstants.ALICE_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.BOB;
-import static org.apache.james.jmap.TestingConstants.BOB_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.CEDRIC;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.awaitility.Duration.ONE_MINUTE;
 import static org.hamcrest.CoreMatchers.equalTo;
@@ -44,8 +44,8 @@ import java.io.IOException;
 import java.util.Locale;
 
 import org.apache.james.GuiceJamesServer;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.JmapCommonRequests;
-import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.jmap.categories.BasicFeature;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.model.MailboxId;
@@ -108,7 +108,7 @@ public abstract class FilterTest {
                 "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(body)
         .when()
             .post("/jmap")
@@ -127,7 +127,7 @@ public abstract class FilterTest {
                 "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(body)
         .when()
             .post("/jmap")
@@ -146,7 +146,7 @@ public abstract class FilterTest {
                 "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(body)
         .when()
             .post("/jmap")
@@ -164,7 +164,7 @@ public abstract class FilterTest {
         MailboxId mailbox2 = randomMailboxId();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -192,7 +192,7 @@ public abstract class FilterTest {
             .statusCode(200);
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -220,7 +220,7 @@ public abstract class FilterTest {
             .statusCode(200);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"getFilter\", " +
                   "  {}, " +
@@ -245,7 +245,7 @@ public abstract class FilterTest {
         MailboxId mailbox = randomMailboxId();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -279,7 +279,7 @@ public abstract class FilterTest {
         MailboxId mailbox = randomMailboxId();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -330,7 +330,7 @@ public abstract class FilterTest {
         MailboxId mailbox2 = randomMailboxId();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -364,7 +364,7 @@ public abstract class FilterTest {
     @Test
     public void setFilterShouldRejectAccountId() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -384,7 +384,7 @@ public abstract class FilterTest {
     @Test
     public void setFilterShouldAcceptNullAccountId() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -403,7 +403,7 @@ public abstract class FilterTest {
     @Test
     public void setFilterShouldRejectIfInState() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -423,7 +423,7 @@ public abstract class FilterTest {
     @Test
     public void setFilterShouldAcceptNullIfInState() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -446,7 +446,7 @@ public abstract class FilterTest {
         MailboxId mailbox2 = randomMailboxId();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -488,7 +488,7 @@ public abstract class FilterTest {
             .statusCode(200);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"getFilter\", " +
                   "  {}, " +
@@ -520,7 +520,7 @@ public abstract class FilterTest {
         MailboxId mailbox = randomMailboxId();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -548,7 +548,7 @@ public abstract class FilterTest {
             .statusCode(200);
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -562,7 +562,7 @@ public abstract class FilterTest {
             .statusCode(200);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"getFilter\", " +
                   "  {}, " +
@@ -581,7 +581,7 @@ public abstract class FilterTest {
         MailboxId mailbox = randomMailboxId();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"setFilter\", " +
                   "  {" +
@@ -665,7 +665,7 @@ public abstract class FilterTest {
             .statusCode(200);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                   "  \"getFilter\", " +
                   "  {}, " +
@@ -698,7 +698,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenFromRuleMatches() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -740,7 +740,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
@@ -751,7 +751,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenToRuleMatches() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -793,7 +793,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -806,7 +806,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenCcRuleMatches() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -849,7 +849,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -862,7 +862,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenRecipientRuleMatchesCc() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -905,7 +905,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -918,7 +918,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenRecipientRuleMatchesTo() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -961,7 +961,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -974,7 +974,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenSubjectRuleMatches() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1016,7 +1016,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1030,7 +1030,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenFromDoesNotMatchRule() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1072,7 +1072,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1085,7 +1085,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenToDoesNotMatchRule() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1127,7 +1127,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1140,7 +1140,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenCcDoesNotMatchRule() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1183,7 +1183,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1196,7 +1196,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenRecipientDoesNotMatchRule() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1239,7 +1239,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1252,7 +1252,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenSubjectRuleDoesNotMatchRule() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1294,7 +1294,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1308,7 +1308,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenSubjectRuleDoesNotMatchRuleBecauseOfCase() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1350,7 +1350,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1363,7 +1363,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenContainsComparatorMatches() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1405,7 +1405,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1418,7 +1418,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenContainsComparatorDoesNotMatch() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1460,7 +1460,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1473,7 +1473,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenExactlyEqualsMatchesName() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1515,7 +1515,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1528,7 +1528,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenExactlyEqualsMatchesAddress() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1570,7 +1570,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1583,7 +1583,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenExactlyEqualsMatchesFullHeader() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1625,7 +1625,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1639,7 +1639,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenExactlyEqualsMatchesCaseInsensitivelyFullHeader() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1681,7 +1681,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1694,7 +1694,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenExactlyEqualsComparatorDoesNotMatch() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1736,7 +1736,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1749,7 +1749,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenNotContainsComparatorMatches() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1791,7 +1791,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1804,7 +1804,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenNotContainsComparatorDoesNotMatch() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1846,7 +1846,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1859,7 +1859,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenContainsNotExactlyEqualsMatches() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1901,7 +1901,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1914,7 +1914,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenNotExactlyEqualsMatchesAddress() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -1956,7 +1956,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -1969,7 +1969,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenNotExactlyEqualsMatchesFullHeader() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -2011,7 +2011,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -2024,7 +2024,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInInboxWhenNotExactlyEqualsComparatorMatchesName() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -2066,7 +2066,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -2079,7 +2079,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenFirstRuleMatches() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -2135,7 +2135,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
@@ -2146,7 +2146,7 @@ public abstract class FilterTest {
     @Test
     public void messageShouldBeAppendedInSpecificMailboxWhenSecondRuleMatches() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -2202,7 +2202,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
@@ -2213,7 +2213,7 @@ public abstract class FilterTest {
     @Test
     public void inboxShouldBeEmptyWhenFromRuleMatchesInSpecificMailbox() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -2255,7 +2255,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
@@ -2267,7 +2267,7 @@ public abstract class FilterTest {
     @Test
     public void matchedMailboxShouldBeEmptyWhenFromRuleDoesntMatch() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "  \"setFilter\", " +
                 "  {" +
@@ -2309,7 +2309,7 @@ public abstract class FilterTest {
             "]]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMailboxesMethodTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMailboxesMethodTest.java
index cc5b7e8..3fef5aa 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMailboxesMethodTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMailboxesMethodTest.java
@@ -21,18 +21,18 @@ package org.apache.james.jmap.draft.methods.integration;
 
 import static io.restassured.RestAssured.given;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.CEDRIC;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.FIRST_MAILBOX;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.SECOND_MAILBOX;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ALICE;
-import static org.apache.james.jmap.TestingConstants.ALICE_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.BOB;
-import static org.apache.james.jmap.TestingConstants.BOB_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.CEDRIC;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.FIRST_MAILBOX;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.SECOND_MAILBOX;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.empty;
@@ -57,7 +57,7 @@ import java.util.Optional;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.quota.QuotaCountLimit;
 import org.apache.james.core.quota.QuotaSizeLimit;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.categories.BasicFeature;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.jmap.draft.model.mailbox.MailboxNamespace;
@@ -136,7 +136,7 @@ public abstract class GetMailboxesMethodTest {
     @Test
     public void getMailboxesShouldErrorNotSupportedWhenRequestContainsNonNullAccountId() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"accountId\": \"1\"}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -154,7 +154,7 @@ public abstract class GetMailboxesMethodTest {
         mailboxProbe.deleteMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), "quicklyRemoved");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + removedId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -167,7 +167,7 @@ public abstract class GetMailboxesMethodTest {
     @Test
     public void getMailboxesShouldReturnErrorWhenInvalidMailboxId() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"invalid id\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -184,7 +184,7 @@ public abstract class GetMailboxesMethodTest {
         String mailboxId2 = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), "myMailbox").serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\", \"" + mailboxId2 + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -202,7 +202,7 @@ public abstract class GetMailboxesMethodTest {
         mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), "myMailbox");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -218,7 +218,7 @@ public abstract class GetMailboxesMethodTest {
         mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), DefaultMailboxes.INBOX);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": []}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -241,7 +241,7 @@ public abstract class GetMailboxesMethodTest {
                 .build();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": null}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -263,7 +263,7 @@ public abstract class GetMailboxesMethodTest {
         aclProbe.replaceRights(MailboxPath.forUser(ALICE, mailboxName), targetUser2, new Rfc4314Rights(Right.Read, Right.Lookup));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + myMailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -285,7 +285,7 @@ public abstract class GetMailboxesMethodTest {
         aclProbe.replaceRights(MailboxPath.forUser(ALICE, mailboxName), targetUser1, new Rfc4314Rights(Right.Read, Right.Lookup));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + myMailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -302,7 +302,7 @@ public abstract class GetMailboxesMethodTest {
         String myMailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), mailboxName).serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + myMailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -322,7 +322,7 @@ public abstract class GetMailboxesMethodTest {
         aclProbe.replaceRights(MailboxPath.forUser(ALICE, mailboxName), targetUser1, new Rfc4314Rights(Right.Lookup, Right.Post));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + myMailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -336,7 +336,7 @@ public abstract class GetMailboxesMethodTest {
     @Test
     public void getMailboxesShouldErrorInvalidArgumentsWhenRequestIsInvalid() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": true}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -394,7 +394,7 @@ public abstract class GetMailboxesMethodTest {
         mailboxProbe.appendMessage(ALICE.asString(), MailboxPath.forUser(ALICE, "name"), AppendCommand.from(message));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -411,7 +411,7 @@ public abstract class GetMailboxesMethodTest {
         mailboxProbe.appendMessage(ALICE.asString(), MailboxPath.forUser(ALICE, "name"), AppendCommand.from(message));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + myMailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -439,7 +439,7 @@ public abstract class GetMailboxesMethodTest {
         String myMailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), "name").serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + myMailboxId + "\"], \"properties\" : [\"unreadMessages\", \"sortOrder\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -468,7 +468,7 @@ public abstract class GetMailboxesMethodTest {
         mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), "name");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"properties\" : []}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -484,7 +484,7 @@ public abstract class GetMailboxesMethodTest {
         mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), "name");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"properties\" : [\"unknown\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -501,7 +501,7 @@ public abstract class GetMailboxesMethodTest {
         MailboxId trashId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), DefaultMailboxes.TRASH);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + inboxId.serialize() + "\", \"" + trashId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -520,7 +520,7 @@ public abstract class GetMailboxesMethodTest {
         MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), DefaultMailboxes.OUTBOX);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -541,7 +541,7 @@ public abstract class GetMailboxesMethodTest {
         aclProbe.replaceRights(bobMailboxPath, CEDRIC.asString(), new Rfc4314Rights(Right.Lookup));
 
         Map<String, String> sharedWith = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + bobMailbox.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -565,7 +565,7 @@ public abstract class GetMailboxesMethodTest {
         aclProbe.replaceRights(bobMailboxPath, CEDRIC.asString(), new Rfc4314Rights(Right.Lookup));
 
         Map<String, String> sharedWith = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + bobMailbox.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -597,7 +597,7 @@ public abstract class GetMailboxesMethodTest {
             .build();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -629,7 +629,7 @@ public abstract class GetMailboxesMethodTest {
             .build();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -650,7 +650,7 @@ public abstract class GetMailboxesMethodTest {
         aclProbe.replaceRights(bobMailboxPath, ALICE.asString(), new Rfc4314Rights(Right.Lookup));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + aliceInboxMailbox.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -672,7 +672,7 @@ public abstract class GetMailboxesMethodTest {
         aclProbe.replaceRights(bobMailboxPath, ALICE.asString(), new Rfc4314Rights(Right.Lookup));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -692,7 +692,7 @@ public abstract class GetMailboxesMethodTest {
         aclProbe.replaceRights(bobMailboxPath, ALICE.asString(), new Rfc4314Rights(Right.Lookup));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -709,7 +709,7 @@ public abstract class GetMailboxesMethodTest {
         MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), DefaultMailboxes.INBOX);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -727,7 +727,7 @@ public abstract class GetMailboxesMethodTest {
         MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), DefaultMailboxes.INBOX);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -752,7 +752,7 @@ public abstract class GetMailboxesMethodTest {
         aclProbe.replaceRights(bobMailboxPath, ALICE.asString(), new Rfc4314Rights(Right.Lookup, Right.Read));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -773,7 +773,7 @@ public abstract class GetMailboxesMethodTest {
         String mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), DefaultMailboxes.INBOX).serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -792,7 +792,7 @@ public abstract class GetMailboxesMethodTest {
         String mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), DefaultMailboxes.INBOX).serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -809,7 +809,7 @@ public abstract class GetMailboxesMethodTest {
         String mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), DefaultMailboxes.INBOX).serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -833,7 +833,7 @@ public abstract class GetMailboxesMethodTest {
         quotaProbe.setMaxMessageCount("#private&bob@domain.tld", SerializableQuotaLimitValue.valueOf(Optional.of(QuotaCountLimit.count(43))));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\",\"" + sharedMailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -848,7 +848,7 @@ public abstract class GetMailboxesMethodTest {
     @Test
     public void getMailboxesShouldReturnQuotaRootForAllMailboxes() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -863,7 +863,7 @@ public abstract class GetMailboxesMethodTest {
         String mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), DefaultMailboxes.INBOX).serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -883,7 +883,7 @@ public abstract class GetMailboxesMethodTest {
         mailboxProbe.appendMessage(ALICE.asString(), MailboxPath.forUser(ALICE, DefaultMailboxes.INBOX), AppendCommand.from(message));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java
index 2537cc3..601d2ed 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java
@@ -22,19 +22,19 @@ package org.apache.james.jmap.draft.methods.integration;
 import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapCommonRequests.bodyOfMessage;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.listMessageIdsInMailbox;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ALICE;
-import static org.apache.james.jmap.TestingConstants.ALICE_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.BOB;
-import static org.apache.james.jmap.TestingConstants.BOB_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.transport.mailets.remote.delivery.HeloNameProvider.LOCALHOST;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.allOf;
@@ -61,7 +61,7 @@ import javax.mail.Flags;
 
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.categories.BasicFeature;
 import org.apache.james.jmap.categories.CassandraAndElasticSearchCategory;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
@@ -156,7 +156,7 @@ public abstract class GetMessageListMethodTest {
             new Rfc4314Rights(Right.Lookup));
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -181,7 +181,7 @@ public abstract class GetMessageListMethodTest {
             new Rfc4314Rights(Right.Read));
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -203,7 +203,7 @@ public abstract class GetMessageListMethodTest {
         String messageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"setMessages\", {\"update\":{\"" + messageId + "\":{\"mailboxIds\": [\"" + otherMailboxId.serialize() + "\"]}}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -212,7 +212,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"text\":\"tiramisu\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -249,7 +249,7 @@ public abstract class GetMessageListMethodTest {
             "]";
 
         String messageId = with()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -285,7 +285,7 @@ public abstract class GetMessageListMethodTest {
             "]";
 
         return with()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body(searchRequest)
             .post("/jmap")
         .then()
@@ -314,7 +314,7 @@ public abstract class GetMessageListMethodTest {
         String messageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body("[[\"setMessages\", {\"update\":{\"" + messageId + "\":{\"mailboxIds\": [\"" + delegatedMailboxId.serialize() + "\"]}}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -323,7 +323,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"subject\":\"chaussette\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -347,7 +347,7 @@ public abstract class GetMessageListMethodTest {
         jmapServer.getProbe(JmapGuiceProbe.class).setInMailboxes(message.getMessageId(), ALICE, mailboxId, mailboxId2);
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -369,7 +369,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isFlagged\":\"true\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -393,7 +393,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isFlagged\":\"false\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -417,7 +417,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isUnread\":\"false\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -441,7 +441,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isUnread\":\"true\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -465,7 +465,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isDraft\":\"true\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -489,7 +489,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isDraft\":\"false\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -513,7 +513,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isAnswered\":\"true\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -537,7 +537,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isAnswered\":\"false\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -561,7 +561,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isForwarded\":\"true\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -585,7 +585,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"isForwarded\":\"false\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -614,7 +614,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"operator\":\"AND\",\"conditions\":[{\"isFlagged\":\"true\"},{\"isUnread\":\"true\"}]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -644,7 +644,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"operator\":\"OR\",\"conditions\":[{\"isFlagged\":\"true\"},{\"isUnread\":\"true\"}]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -674,7 +674,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"operator\":\"NOT\",\"conditions\":[{\"isFlagged\":\"true\"},{\"isUnread\":\"true\"}]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -704,7 +704,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"operator\":\"OR\",\"conditions\":[" +
                 "{\"operator\":\"AND\", \"conditions\":[{\"isFlagged\":\"true\"},{\"isUnread\":\"true\"}]}," +
                 "{\"operator\":\"AND\", \"conditions\":[{\"isFlagged\":\"true\"},{\"isUnread\":\"false\"}]}" +
@@ -724,7 +724,7 @@ public abstract class GetMessageListMethodTest {
     @Test
     public void getMessageListShouldReturnErrorInvalidArgumentsWhenRequestIsInvalid() {
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\": true}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -737,7 +737,7 @@ public abstract class GetMessageListMethodTest {
     @Test
     public void getMessageListShouldReturnErrorInvalidArgumentsWhenHeaderIsInvalid() {
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"header\":[\"132\", \"456\", \"789\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -760,7 +760,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"hasAttachment\":\"true\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -783,7 +783,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"hasAttachment\":\"false\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -796,7 +796,7 @@ public abstract class GetMessageListMethodTest {
     @Test
     public void getMessageListShouldNotFailWhenHeaderIsValid() {
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"header\":[\"132\", \"456\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -816,7 +816,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -838,7 +838,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -870,7 +870,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -889,7 +889,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + mailboxId.serialize() + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -914,7 +914,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + mailboxId.serialize() + "\"],\"text\":\"test\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -934,7 +934,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body(String.format("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"%s\", \"%s\"]}}, \"#0\"]]", mailboxId.serialize(), mailboxId2.serialize()))
         .when()
             .post("/jmap")
@@ -953,7 +953,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body(String.format("[[\"getMessageList\", {\"filter\":{\"notInMailboxes\":[\"%s\"]}}, \"#0\"]]", mailboxId.serialize()))
         .when()
             .post("/jmap")
@@ -975,7 +975,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body(String.format("[[\"getMessageList\", {\"filter\":{\"notInMailboxes\":[\"%s\", \"%s\"]}}, \"#0\"]]", mailboxId.serialize(), mailbox2Id.serialize()))
         .when()
             .post("/jmap")
@@ -993,7 +993,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body(String.format("[[\"getMessageList\", {\"filter\":{\"notInMailboxes\":[\"%s\"], \"inMailboxes\":[\"%s\"]}}, \"#0\"]]", mailboxId.serialize(), mailboxId.serialize()))
         .when()
             .post("/jmap")
@@ -1013,7 +1013,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body(String.format("[[\"getMessageList\", {\"filter\":{\"notInMailboxes\":[\"%s\"]}}, \"#0\"]]", mailbox2Id.serialize()))
         .when()
             .post("/jmap")
@@ -1033,7 +1033,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"notInMailboxes\":[]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1053,7 +1053,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body(String.format("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"%s\"]}}, \"#0\"]]", emptyMailboxId.serialize()))
         .when()
             .post("/jmap")
@@ -1070,7 +1070,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"text\":\"bad\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1088,7 +1088,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"text\":\"html\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1107,7 +1107,7 @@ public abstract class GetMessageListMethodTest {
         // text/html contains: "This is a mail with beautifull html content which contains a banana."
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"text\":\"contain banana\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1124,7 +1124,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"subject\":\"Image\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1141,7 +1141,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"from\":\"from@james.org\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1158,7 +1158,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"from\":\"to@james.org\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1175,7 +1175,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"to\":\"to@james.org\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1192,7 +1192,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"to\":\"from@james.org\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1209,7 +1209,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"cc\":\"cc@james.org\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1226,7 +1226,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"cc\":\"bcc@james.org\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1243,7 +1243,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"bcc\":\"bcc@james.org\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1260,7 +1260,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"bcc\":\"to@james.org\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1289,7 +1289,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"attachments\":\"no apple inside\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1318,7 +1318,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"attachments\":\"beautiful banana\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1340,7 +1340,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"date\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1363,7 +1363,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"date desc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1385,7 +1385,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"date asc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1407,7 +1407,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"subject asc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1429,7 +1429,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"subject desc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1451,7 +1451,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"from asc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1473,7 +1473,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"from desc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1495,7 +1495,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"to asc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1517,7 +1517,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"to desc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1540,7 +1540,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"size asc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1562,7 +1562,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"size desc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1587,7 +1587,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"size asc\", \"date desc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1612,7 +1612,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"date desc\", \"size asc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1635,7 +1635,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"id\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1657,7 +1657,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"date desc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1670,7 +1670,7 @@ public abstract class GetMessageListMethodTest {
     @Test
     public void getMessageListShouldWorkWhenCollapseThreadIsFalse() {
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"collapseThreads\":false}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1682,7 +1682,7 @@ public abstract class GetMessageListMethodTest {
     @Test
     public void getMessageListShouldWorkWhenCollapseThreadIsTrue() {
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"collapseThreads\":true}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1703,7 +1703,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1725,7 +1725,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"position\":1, \"sort\":[\"date desc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1750,7 +1750,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"position\":1, \"limit\":1, \"sort\":[\"date desc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1772,7 +1772,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1794,7 +1794,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"limit\":1}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1820,7 +1820,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1841,7 +1841,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"fetchMessages\":true}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1870,7 +1870,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"fetchMessages\": true, \"fetchMessageProperties\": [\"htmlBody\", \"textBody\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1895,7 +1895,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"hasKeyword\":\"$Flagged\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1924,7 +1924,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"operator\":\"AND\",\"conditions\":[{\"hasKeyword\":\"$Flagged\"},{\"hasKeyword\":\"$Forwarded\"}]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1948,7 +1948,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"notKeyword\":\"$Flagged\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1977,7 +1977,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"operator\":\"AND\",\"conditions\":[{\"notKeyword\":\"$Flagged\"},{\"notKeyword\":\"$Forwarded\"}]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2006,7 +2006,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"operator\":\"OR\",\"conditions\":[{\"notKeyword\":\"$Flagged\"},{\"notKeyword\":\"$Forwarded\"}]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2029,7 +2029,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"hasKeyword\":\"$Flagged\", \"notKeyword\":\"$Draft\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2053,7 +2053,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"hasKeyword\":\"$Deleted\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2076,7 +2076,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"hasKeyword\":\"$Recent\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2099,7 +2099,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"notKeyword\":\"$Deleted\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2122,7 +2122,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"notKeyword\":\"$Recent\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2146,7 +2146,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"sort\":[\"date asc\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2182,7 +2182,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"attachmentFileName\":\"matchme.txt\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2213,7 +2213,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"attachmentFileName\":\"matchme.txt\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2249,7 +2249,7 @@ public abstract class GetMessageListMethodTest {
         await();
 
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"text\":\"matchme.txt\"}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2266,7 +2266,7 @@ public abstract class GetMessageListMethodTest {
     @Test
     public void getMessageListShouldAcceptLessThan2Pow53NumberForPosition() {
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"position\":" + Number.MAX_VALUE + "}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2278,7 +2278,7 @@ public abstract class GetMessageListMethodTest {
     @Test
     public void getMessageListShouldErrorWhenPositionOver2Pow53() {
         given()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"position\":" + Number.MAX_VALUE + 1 + "}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2341,7 +2341,7 @@ public abstract class GetMessageListMethodTest {
     private boolean twoMessagesFoundInMailbox(MailboxId mailboxId) {
         try {
             with()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + mailboxId.serialize() + "\"]}}, \"#0\"]]")
             .when()
                 .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetVacationResponseTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetVacationResponseTest.java
index 9e7c993..2733f67 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetVacationResponseTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetVacationResponseTest.java
@@ -21,13 +21,13 @@ package org.apache.james.jmap.draft.methods.integration;
 
 import static io.restassured.RestAssured.given;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ALICE;
-import static org.apache.james.jmap.TestingConstants.ALICE_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.hasSize;
 import static org.hamcrest.core.IsNull.nullValue;
@@ -36,8 +36,8 @@ import java.io.IOException;
 import java.time.ZonedDateTime;
 
 import org.apache.james.GuiceJamesServer;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.FixedDateZonedDateTimeProvider;
-import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.jmap.api.vacation.AccountId;
 import org.apache.james.jmap.api.vacation.VacationPatch;
 import org.apache.james.jmap.categories.BasicFeature;
@@ -96,7 +96,7 @@ public abstract class GetVacationResponseTest {
     @Test
     public void getVacationResponseShouldReturnDefaultValue() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "\"getVacationResponse\", " +
                 "{}, " +
@@ -132,7 +132,7 @@ public abstract class GetVacationResponseTest {
                 .build());
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "\"getVacationResponse\", " +
                 "{}, " +
@@ -165,7 +165,7 @@ public abstract class GetVacationResponseTest {
                 .build());
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "\"getVacationResponse\", " +
                 "{}, " +
@@ -198,7 +198,7 @@ public abstract class GetVacationResponseTest {
         given()
             .accept(ContentType.JSON)
             .contentType(ContentType.JSON)
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                     "\"getVacationResponse\", " +
                     "{}, " +
@@ -227,7 +227,7 @@ public abstract class GetVacationResponseTest {
         given()
             .accept(ContentType.JSON)
             .contentType(ContentType.JSON)
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                     "\"getVacationResponse\", " +
                     "{}, " +
@@ -252,7 +252,7 @@ public abstract class GetVacationResponseTest {
                 .build());
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[" +
                 "\"getVacationResponse\", " +
                 "{\"accountId\":\"1\"}, " +
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/QuotaMailingTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/QuotaMailingTest.java
index 23a18b5..6412336 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/QuotaMailingTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/QuotaMailingTest.java
@@ -22,14 +22,14 @@ package org.apache.james.jmap.draft.methods.integration;
 import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapCommonRequests.concatMessageIds;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.listMessageIdsForAccount;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.hasItem;
 
@@ -39,7 +39,7 @@ import java.util.List;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
 import org.apache.james.core.quota.QuotaSizeLimit;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.categories.BasicFeature;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.DefaultMailboxes;
@@ -116,7 +116,7 @@ public abstract class QuotaMailingTest {
         String idString = concatMessageIds(ids);
 
         given()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [" + idString + "]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -145,7 +145,7 @@ public abstract class QuotaMailingTest {
         String idString = concatMessageIds(ids);
 
         given()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [" + idString + "]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -181,7 +181,7 @@ public abstract class QuotaMailingTest {
             "]";
 
         with()
-            .header("Authorization", bartAccessToken.serialize())
+            .header("Authorization", bartAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SendMDNMethodTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SendMDNMethodTest.java
index d8692ee..100023b 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SendMDNMethodTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SendMDNMethodTest.java
@@ -22,16 +22,16 @@ package org.apache.james.jmap.draft.methods.integration;
 import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapCommonRequests.getInboxId;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.listMessageIdsForAccount;
 import static org.apache.james.jmap.JmapCommonRequests.listMessageIdsInMailbox;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.awaitility.Duration.TWO_MINUTES;
 import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.containsString;
@@ -47,8 +47,8 @@ import java.util.Optional;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
 import org.apache.james.core.quota.QuotaSizeLimit;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.MessageAppender;
-import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.jmap.categories.BasicFeature;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.DefaultMailboxes;
@@ -124,7 +124,7 @@ public abstract class SendMDNMethodTest {
             "]";
 
         String id = with()
-            .header("Authorization", bartAccessToken.serialize())
+            .header("Authorization", bartAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -157,7 +157,7 @@ public abstract class SendMDNMethodTest {
             "]";
 
         with()
-            .header("Authorization", bartAccessToken.serialize())
+            .header("Authorization", bartAccessToken.asString())
             .body(requestBody)
             .post("/jmap")
         .then()
@@ -176,7 +176,7 @@ public abstract class SendMDNMethodTest {
 
         String creationId = "creation-1";
         given()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"setMessages\", {\"sendMDN\": {" +
                 "\"" + creationId + "\":{" +
                     "    \"messageId\":\"" + messageIds.get(0) + "\"," +
@@ -206,7 +206,7 @@ public abstract class SendMDNMethodTest {
         String creationId = "creation-1";
         String randomMessageId = randomMessageId().serialize();
         given()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"setMessages\", {\"sendMDN\": {" +
                 "\"" + creationId + "\":{" +
                     "    \"messageId\":\"" + randomMessageId + "\"," +
@@ -242,7 +242,7 @@ public abstract class SendMDNMethodTest {
         String creationId = "creation-1";
 
         given()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"setMessages\", {\"sendMDN\": {" +
                 "\"" + creationId + "\":{" +
                     "    \"messageId\":\"" + messageIds.get(0) + "\"," +
@@ -282,7 +282,7 @@ public abstract class SendMDNMethodTest {
         // HOMER sends a MDN back to BART
         String creationId = "creation-1";
         with()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"setMessages\", {\"sendMDN\": {" +
                 "\"" + creationId + "\":{" +
                 "    \"messageId\":\"" + homerReceivedMessageId + "\"," +
@@ -304,7 +304,7 @@ public abstract class SendMDNMethodTest {
 
         String firstMessage = ARGUMENTS + ".list[0]";
         given()
-            .header("Authorization", bartAccessToken.serialize())
+            .header("Authorization", bartAccessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + bartInboxMessageIds + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -329,7 +329,7 @@ public abstract class SendMDNMethodTest {
         // USER sends a MDN back to BART
         String creationId = "creation-1";
         with()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"setMessages\", {\"sendMDN\": {" +
                 "\"" + creationId + "\":{" +
                 "    \"messageId\":\"" + messageIds.get(0) + "\"," +
@@ -350,7 +350,7 @@ public abstract class SendMDNMethodTest {
         List<String> bobInboxMessageIds = listMessageIdsInMailbox(bartAccessToken, getInboxId(bartAccessToken));
 
         String blobId = with()
-            .header("Authorization", bartAccessToken.serialize())
+            .header("Authorization", bartAccessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + bobInboxMessageIds.get(0) + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -359,7 +359,7 @@ public abstract class SendMDNMethodTest {
             .path(ARGUMENTS + ".list[0].attachments[0].blobId");
 
         given()
-            .header("Authorization", bartAccessToken.serialize())
+            .header("Authorization", bartAccessToken.asString())
         .when()
             .get("/download/" + blobId)
         .then()
@@ -375,7 +375,7 @@ public abstract class SendMDNMethodTest {
         String creationId = "creation-1";
         // Missing subject
         given()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"setMessages\", {\"sendMDN\": {" +
                 "\"" + creationId + "\":{" +
                     "    \"messageId\":\"" + randomMessageId().serialize() + "\"," +
@@ -412,7 +412,7 @@ public abstract class SendMDNMethodTest {
 
         String creationId = "creation-1";
         given()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"setMessages\", {\"sendMDN\": {" +
                 "\"" + creationId + "\":{" +
                 "    \"messageId\":\"" + messageIds.get(0) + "\"," +
@@ -442,7 +442,7 @@ public abstract class SendMDNMethodTest {
         String creationId = "creation-1";
         // Missing actionMode
         given()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"setMessages\", {\"sendMDN\": {" +
                 "\"" + creationId + "\":{" +
                 "    \"messageId\":\"" + randomMessageId().serialize() + "\"," +
@@ -469,7 +469,7 @@ public abstract class SendMDNMethodTest {
     void invalidEnumValuesInMDNShouldBeReported() {
         String creationId = "creation-1";
         given()
-            .header("Authorization", homerAccessToken.serialize())
+            .header("Authorization", homerAccessToken.asString())
             .body("[[\"setMessages\", {\"sendMDN\": {" +
                 "\"" + creationId + "\":{" +
                 "    \"messageId\":\"" + randomMessageId().serialize() + "\"," +
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMailboxesMethodTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMailboxesMethodTest.java
index 30ac30e..8a24c6f 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMailboxesMethodTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMailboxesMethodTest.java
@@ -22,12 +22,12 @@ package org.apache.james.jmap.draft.methods.integration;
 import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.FIRST_MAILBOX;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.FIRST_MAILBOX;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.containsInAnyOrder;
@@ -48,9 +48,10 @@ import java.io.IOException;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.categories.BasicFeature;
 import org.apache.james.jmap.categories.CassandraAndElasticSearchCategory;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.model.MailboxACL;
@@ -63,7 +64,6 @@ import org.apache.james.modules.ACLProbeImpl;
 import org.apache.james.modules.MailboxProbeImpl;
 import org.apache.james.probe.DataProbe;
 import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.hamcrest.Matchers;
 import org.junit.After;
 import org.junit.Before;
@@ -137,7 +137,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -170,7 +170,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -202,7 +202,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -232,7 +232,7 @@ public abstract class SetMailboxesMethodTest {
                 "  ]" +
                 "]";
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -264,7 +264,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -294,7 +294,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -328,7 +328,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
@@ -357,7 +357,7 @@ public abstract class SetMailboxesMethodTest {
                 "  ]" +
                 "]";
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
@@ -383,7 +383,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -409,7 +409,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
@@ -435,7 +435,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -467,7 +467,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -489,7 +489,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -521,7 +521,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -550,7 +550,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -579,7 +579,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -606,13 +606,13 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -626,7 +626,7 @@ public abstract class SetMailboxesMethodTest {
     public void setMailboxesShouldReturnCreatedMailboxWhenChildOfInboxMailbox() {
         String inboxId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMailboxes\", {}, \"#0\"]]")
             .when()
                 .post("/jmap")
@@ -651,7 +651,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -684,13 +684,13 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -718,7 +718,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -752,7 +752,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -789,7 +789,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -823,7 +823,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -858,7 +858,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -893,7 +893,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
             given()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body(requestBody)
             .when()
                 .post("/jmap")
@@ -922,7 +922,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -946,7 +946,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -954,7 +954,7 @@ public abstract class SetMailboxesMethodTest {
             .statusCode(200);
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -978,7 +978,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1006,7 +1006,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1033,7 +1033,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1061,7 +1061,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1086,7 +1086,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1120,7 +1120,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1149,7 +1149,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1178,7 +1178,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1206,7 +1206,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1234,7 +1234,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1251,7 +1251,7 @@ public abstract class SetMailboxesMethodTest {
             .serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1280,7 +1280,7 @@ public abstract class SetMailboxesMethodTest {
             .serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1309,7 +1309,7 @@ public abstract class SetMailboxesMethodTest {
             .serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1351,12 +1351,12 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1375,7 +1375,7 @@ public abstract class SetMailboxesMethodTest {
         MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, username.asString(), myBox);
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1391,7 +1391,7 @@ public abstract class SetMailboxesMethodTest {
             .post("/jmap");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1407,7 +1407,7 @@ public abstract class SetMailboxesMethodTest {
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1425,7 +1425,7 @@ public abstract class SetMailboxesMethodTest {
         MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, username.asString(), myBox);
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1441,7 +1441,7 @@ public abstract class SetMailboxesMethodTest {
             .post("/jmap");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1457,7 +1457,7 @@ public abstract class SetMailboxesMethodTest {
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1476,7 +1476,7 @@ public abstract class SetMailboxesMethodTest {
         MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, username.asString(), myBox);
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1492,7 +1492,7 @@ public abstract class SetMailboxesMethodTest {
             .post("/jmap");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1508,7 +1508,7 @@ public abstract class SetMailboxesMethodTest {
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1526,7 +1526,7 @@ public abstract class SetMailboxesMethodTest {
         MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, username.asString(), myBox);
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[" +
                 "  [ \"setMailboxes\"," +
                 "    {" +
@@ -1567,12 +1567,12 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1607,7 +1607,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1640,12 +1640,12 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1682,7 +1682,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1715,12 +1715,12 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1752,7 +1752,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1783,12 +1783,12 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1821,7 +1821,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1853,12 +1853,12 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1888,7 +1888,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1919,7 +1919,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1956,7 +1956,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1989,7 +1989,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2021,7 +2021,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2051,12 +2051,12 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId.serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2086,7 +2086,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2117,7 +2117,7 @@ public abstract class SetMailboxesMethodTest {
                     "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2151,7 +2151,7 @@ public abstract class SetMailboxesMethodTest {
                   "]";
 
       given()
-          .header("Authorization", accessToken.serialize())
+          .header("Authorization", accessToken.asString())
           .body(requestBody)
       .when()
           .post("/jmap")
@@ -2180,7 +2180,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2208,7 +2208,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2239,7 +2239,7 @@ public abstract class SetMailboxesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodReRoutingTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodReRoutingTest.java
index 419a2b4..49fa832 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodReRoutingTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodReRoutingTest.java
@@ -23,14 +23,14 @@ import static io.restassured.RestAssured.given;
 import static io.restassured.config.EncoderConfig.encoderConfig;
 import static io.restassured.config.RestAssuredConfig.newConfig;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
 import static org.apache.james.jmap.JmapCommonRequests.bodyOfMessage;
 import static org.apache.james.jmap.JmapCommonRequests.getLatestMessageId;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.receiversOfMessage;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.collection.IsMapWithSize.aMapWithSize;
@@ -41,13 +41,13 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.Role;
 import org.apache.james.mailbox.probe.MailboxProbe;
 import org.apache.james.modules.MailboxProbeImpl;
 import org.apache.james.probe.DataProbe;
 import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.awaitility.Duration;
 import org.junit.After;
 import org.junit.Before;
@@ -129,7 +129,7 @@ public abstract class SetMessagesMethodReRoutingTest {
             "  ]" +
             "]";
         given()
-            .header("Authorization", senderAtDestinationDomainToken.serialize())
+            .header("Authorization", senderAtDestinationDomainToken.asString())
             .body(sendMessageBody)
         .when()
             .post("/jmap")
@@ -173,7 +173,7 @@ public abstract class SetMessagesMethodReRoutingTest {
             "  ]" +
             "]";
         given()
-            .header("Authorization", senderAtDestinationDomainToken.serialize())
+            .header("Authorization", senderAtDestinationDomainToken.asString())
             .body(sendMessageBody)
         .when()
             .post("/jmap")
@@ -219,7 +219,7 @@ public abstract class SetMessagesMethodReRoutingTest {
             "  ]" +
             "]";
         given()
-            .header("Authorization", senderAtDestinationDomainToken.serialize())
+            .header("Authorization", senderAtDestinationDomainToken.asString())
             .body(sendMessageBody)
         .when()
             .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodTest.java
index 48bf442..8ed6dcd 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodTest.java
@@ -23,23 +23,23 @@ import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
 import static io.restassured.config.EncoderConfig.encoderConfig;
 import static io.restassured.config.RestAssuredConfig.newConfig;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.LOCALHOST_IP;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.SECOND_ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.SECOND_NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
 import static org.apache.james.jmap.JmapCommonRequests.getDraftId;
 import static org.apache.james.jmap.JmapCommonRequests.getInboxId;
 import static org.apache.james.jmap.JmapCommonRequests.getMailboxId;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.getSetMessagesUpdateOKResponseAssertions;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ALICE;
-import static org.apache.james.jmap.TestingConstants.ALICE_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.BOB;
-import static org.apache.james.jmap.TestingConstants.BOB_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.LOCALHOST_IP;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.SECOND_ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.SECOND_NAME;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.containsInAnyOrder;
@@ -75,9 +75,9 @@ import org.apache.commons.io.IOUtils;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
 import org.apache.james.core.quota.QuotaSizeLimit;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.HttpJmapAuthentication;
 import org.apache.james.jmap.MessageAppender;
-import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.jmap.categories.BasicFeature;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.jmap.draft.MessageIdProbe;
@@ -108,6 +108,7 @@ import org.apache.james.modules.protocols.SmtpGuiceProbe;
 import org.apache.james.probe.DataProbe;
 import org.apache.james.util.ClassLoaderUtils;
 import org.apache.james.util.MimeMessageUtil;
+import org.apache.james.util.Port;
 import org.apache.james.util.ZeroedInputStream;
 import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
@@ -156,6 +157,7 @@ public abstract class SetMessagesMethodTest {
     private DataProbe dataProbe;
     private MessageIdProbe messageProbe;
     private ACLProbe aclProbe;
+    private Port jmapPort;
 
     @Before
     public void setup() throws Throwable {
@@ -191,7 +193,7 @@ public abstract class SetMessagesMethodTest {
     @Test
     public void setMessagesShouldReturnAnErrorNotSupportedWhenRequestContainsNonNullAccountId() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"setMessages\", {\"accountId\": \"1\"}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -206,7 +208,7 @@ public abstract class SetMessagesMethodTest {
     @Test
     public void setMessagesShouldReturnAnErrorNotSupportedWhenRequestContainsNonNullIfInState() {
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"setMessages\", {\"ifInState\": \"1\"}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -223,7 +225,7 @@ public abstract class SetMessagesMethodTest {
 
         String unknownMailboxMessageId = randomMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"setMessages\", {\"destroy\": [\"" + unknownMailboxMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -245,7 +247,7 @@ public abstract class SetMessagesMethodTest {
 
         String messageId = randomMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"setMessages\", {\"destroy\": [\"" + messageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -271,7 +273,7 @@ public abstract class SetMessagesMethodTest {
         await();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"setMessages\", {\"destroy\": [\"" + message.getMessageId().serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -296,7 +298,7 @@ public abstract class SetMessagesMethodTest {
 
         // When
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"setMessages\", {\"destroy\": [\"" + message.getMessageId().serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -306,7 +308,7 @@ public abstract class SetMessagesMethodTest {
 
         // Then
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + message.getMessageId().serialize() + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -333,7 +335,7 @@ public abstract class SetMessagesMethodTest {
 
         String missingMessageId = randomMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"destroy\": [\"%s\", \"%s\", \"%s\"]}, \"#0\"]]",
                 message1.getMessageId().serialize(),
                 missingMessageId,
@@ -370,7 +372,7 @@ public abstract class SetMessagesMethodTest {
 
         // When
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"destroy\": [\"%s\", \"%s\", \"%s\"]}, \"#0\"]]",
                 message1.getMessageId().serialize(),
                 randomMessageId().serialize(),
@@ -379,7 +381,7 @@ public abstract class SetMessagesMethodTest {
 
         // Then
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"getMessages\", {\"ids\": [\"%s\", \"%s\", \"%s\"]}, \"#0\"]]",
                 message1.getMessageId().serialize(),
                 message2.getMessageId().serialize(),
@@ -406,7 +408,7 @@ public abstract class SetMessagesMethodTest {
 
         // When
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isUnread\" : false } } }, \"#0\"]]", serializedMessageId))
         .when()
             .post("/jmap")
@@ -427,7 +429,7 @@ public abstract class SetMessagesMethodTest {
         String messageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isUnread\" : false, \"keywords\": {\"$Seen\": true} } } }, \"#0\"]]", messageId))
         .when()
             .post("/jmap")
@@ -451,7 +453,7 @@ public abstract class SetMessagesMethodTest {
         String serializedMessageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"keywords\": {\"$Seen\": true, \"$Flagged\": true} } } }, \"#0\"]]", serializedMessageId))
         .when()
             .post("/jmap")
@@ -460,7 +462,7 @@ public abstract class SetMessagesMethodTest {
             .spec(getSetMessagesUpdateOKResponseAssertions(serializedMessageId));
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + serializedMessageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -483,7 +485,7 @@ public abstract class SetMessagesMethodTest {
         String serializedMessageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"keywords\": {\"$Seen\": true, \"$Forwarded\": true} } } }, \"#0\"]]", serializedMessageId))
         .when()
             .post("/jmap")
@@ -492,7 +494,7 @@ public abstract class SetMessagesMethodTest {
             .spec(getSetMessagesUpdateOKResponseAssertions(serializedMessageId));
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + serializedMessageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -519,7 +521,7 @@ public abstract class SetMessagesMethodTest {
         String serializedMessageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"keywords\": {\"$Seen\": true} } } }, \"#0\"]]", serializedMessageId))
         .when()
             .post("/jmap")
@@ -528,7 +530,7 @@ public abstract class SetMessagesMethodTest {
             .spec(getSetMessagesUpdateOKResponseAssertions(serializedMessageId));
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + serializedMessageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -550,7 +552,7 @@ public abstract class SetMessagesMethodTest {
         String messageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"keywords\": {\"$Answered\": true, \"$Deleted\" : true} } } }, \"#0\"]]", messageId))
         .when()
             .post("/jmap")
@@ -573,7 +575,7 @@ public abstract class SetMessagesMethodTest {
         String messageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"keywords\": {\"$Answered\": true, \"$Recent\": true} } } }, \"#0\"]]", messageId))
         .when()
             .post("/jmap")
@@ -596,7 +598,7 @@ public abstract class SetMessagesMethodTest {
         String messageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"keywords\": {\"$Answered\": true, \"$Forwarded\": true} } } }, \"#0\"]]", messageId))
         .when()
             .post("/jmap")
@@ -629,7 +631,7 @@ public abstract class SetMessagesMethodTest {
         String messageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"keywords\": {\"$Answered\": true, \"$Forwarded\": true} } } }, \"#0\"]]", messageId))
         .when()
             .post("/jmap")
@@ -664,7 +666,7 @@ public abstract class SetMessagesMethodTest {
         String messageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"keywords\": {\"$Answered\": true, \"$Flagged\": true} } } }, \"#0\"]]", messageId))
         .when()
             .post("/jmap")
@@ -673,7 +675,7 @@ public abstract class SetMessagesMethodTest {
             .spec(getSetMessagesUpdateOKResponseAssertions(messageId));
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -696,14 +698,14 @@ public abstract class SetMessagesMethodTest {
 
         String serializedMessageId = message.getMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isUnread\" : false } } }, \"#0\"]]", serializedMessageId))
         // When
         .when()
             .post("/jmap");
         // Then
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + serializedMessageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -725,7 +727,7 @@ public abstract class SetMessagesMethodTest {
 
         String serializedMessageId = message.getMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isUnread\" : true } } }, \"#0\"]]", serializedMessageId))
         // When
         .when()
@@ -747,14 +749,14 @@ public abstract class SetMessagesMethodTest {
 
         String serializedMessageId = message.getMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isUnread\" : true } } }, \"#0\"]]", serializedMessageId))
         // When
         .when()
             .post("/jmap");
         // Then
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + serializedMessageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -776,7 +778,7 @@ public abstract class SetMessagesMethodTest {
 
         String serializedMessageId = message.getMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isFlagged\" : true } } }, \"#0\"]]", serializedMessageId))
         // When
         .when()
@@ -798,14 +800,14 @@ public abstract class SetMessagesMethodTest {
 
         String serializedMessageId = message.getMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isFlagged\" : true } } }, \"#0\"]]", serializedMessageId))
         // When
         .when()
             .post("/jmap");
         // Then
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + serializedMessageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -826,7 +828,7 @@ public abstract class SetMessagesMethodTest {
         String messageId = randomMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isUnread\" : \"123\" } } }, \"#0\"]]", messageId))
         .when()
             .post("/jmap")
@@ -854,7 +856,7 @@ public abstract class SetMessagesMethodTest {
         String messageId = USERNAME.asString() + "|mailbox|1";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isUnread\" : \"123\", \"isFlagged\" : 456 } } }, \"#0\"]]", messageId))
         .when()
             .post("/jmap")
@@ -882,7 +884,7 @@ public abstract class SetMessagesMethodTest {
         String serializedMessageId = message.getMessageId().serialize();
         // When
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isAnswered\" : true } } }, \"#0\"]]", serializedMessageId))
         .when()
             .post("/jmap")
@@ -903,14 +905,14 @@ public abstract class SetMessagesMethodTest {
 
         String serializedMessageId = message.getMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isAnswered\" : true } } }, \"#0\"]]", serializedMessageId))
         // When
         .when()
             .post("/jmap");
         // Then
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + serializedMessageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -932,7 +934,7 @@ public abstract class SetMessagesMethodTest {
         String serializedMessageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isForwarded\" : true } } }, \"#0\"]]", serializedMessageId))
         .when()
             .post("/jmap")
@@ -951,13 +953,13 @@ public abstract class SetMessagesMethodTest {
 
         String serializedMessageId = message.getMessageId().serialize();
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isForwarded\" : true } } }, \"#0\"]]", serializedMessageId))
         .when()
             .post("/jmap");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + serializedMessageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -974,7 +976,7 @@ public abstract class SetMessagesMethodTest {
         String nonExistingMessageId = randomMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"isUnread\" : true } } }, \"#0\"]]", nonExistingMessageId))
         .when()
             .post("/jmap")
@@ -1010,7 +1012,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1060,7 +1062,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1094,7 +1096,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
        .when()
             .post("/jmap")
@@ -1128,7 +1130,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1162,7 +1164,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
        .when()
             .post("/jmap")
@@ -1201,7 +1203,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
        .when()
             .post("/jmap")
@@ -1238,7 +1240,7 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1271,7 +1273,7 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1308,7 +1310,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1349,7 +1351,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1392,7 +1394,7 @@ public abstract class SetMessagesMethodTest {
                 .toString();
 
             given()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body(requestBody)
             .when()
                 .post("/jmap")
@@ -1414,7 +1416,7 @@ public abstract class SetMessagesMethodTest {
             String inboxId = getMailboxId(accessToken, Role.INBOX);
             String receivedMessageId =
                 with()
-                    .header("Authorization", accessToken.serialize())
+                    .header("Authorization", accessToken.asString())
                     .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}}, \"#0\"]]")
                     .post("/jmap")
                 .then()
@@ -1422,7 +1424,7 @@ public abstract class SetMessagesMethodTest {
                     .path(ARGUMENTS + ".messageIds[0]");
 
             given()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessages\", {\"ids\": [\"" + receivedMessageId + "\"]}, \"#0\"]]")
             .when()
                 .post("/jmap")
@@ -1461,7 +1463,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1497,7 +1499,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1507,7 +1509,7 @@ public abstract class SetMessagesMethodTest {
             .path(ARGUMENTS + ".created." + messageCreationId + ".id");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -1539,7 +1541,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1573,7 +1575,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1612,7 +1614,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1646,7 +1648,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1680,7 +1682,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1690,7 +1692,7 @@ public abstract class SetMessagesMethodTest {
             .path(ARGUMENTS + ".created." + messageCreationId + ".id");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -1722,7 +1724,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1760,7 +1762,7 @@ public abstract class SetMessagesMethodTest {
 
         String receivedMessageId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body(requestBody)
                 .post("/jmap")
                 .then()
@@ -1769,7 +1771,7 @@ public abstract class SetMessagesMethodTest {
 
         String firstMessage = ARGUMENTS + ".list[0]";
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + receivedMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -1800,7 +1802,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1833,7 +1835,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .when()
             .post("/jmap")
@@ -1865,7 +1867,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1897,7 +1899,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1931,7 +1933,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -1971,7 +1973,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2018,7 +2020,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .when()
             .post("/jmap")
@@ -2049,7 +2051,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2089,7 +2091,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2128,7 +2130,7 @@ public abstract class SetMessagesMethodTest {
 
         String draftId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body(createDraft)
                 .post("/jmap")
             .then()
@@ -2149,7 +2151,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(moveDraftToOutBox)
             .post("/jmap");
 
@@ -2180,7 +2182,7 @@ public abstract class SetMessagesMethodTest {
 
         String draftId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body(createDraft)
                 .post("/jmap")
             .then()
@@ -2201,7 +2203,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(copyDraftToOutBox)
         .when()
             .post("/jmap")
@@ -2236,7 +2238,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(moveMessageToOutBox)
         .when()
             .post("/jmap")
@@ -2272,7 +2274,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2312,7 +2314,7 @@ public abstract class SetMessagesMethodTest {
         jmapServer.getProbe(JmapGuiceProbe.class).addMailboxListener(eventCollector);
 
         String messageId = with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         // When
         .post("/jmap")
@@ -2363,7 +2365,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -2376,7 +2378,7 @@ public abstract class SetMessagesMethodTest {
     private boolean messageHasBeenMovedToSentBox(String sentMailboxId) {
         try {
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", {\"fetchMessages\":true, \"filter\":{\"inMailboxes\":[\"" + sentMailboxId + "\"]}}, \"#0\"]]")
             .when()
                 .post("/jmap")
@@ -2412,7 +2414,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2447,7 +2449,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2484,7 +2486,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2519,7 +2521,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2534,7 +2536,7 @@ public abstract class SetMessagesMethodTest {
     private boolean hasNoMessageIn(AccessToken accessToken, String mailboxId) {
         try {
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + mailboxId + "\"]}}, \"#0\"]]")
             .when()
                 .post("/jmap")
@@ -2570,7 +2572,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2607,7 +2609,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2647,7 +2649,7 @@ public abstract class SetMessagesMethodTest {
 
         // Given
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -2677,7 +2679,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2709,7 +2711,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -2758,7 +2760,7 @@ public abstract class SetMessagesMethodTest {
 
         // Given
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -2805,7 +2807,7 @@ public abstract class SetMessagesMethodTest {
 
         // Given
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -2852,7 +2854,7 @@ public abstract class SetMessagesMethodTest {
 
         // Given
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -2861,7 +2863,7 @@ public abstract class SetMessagesMethodTest {
         // Then
         calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(recipientToken));
         with()
-            .header("Authorization", recipientToken.serialize())
+            .header("Authorization", recipientToken.asString())
             .body("[[\"getMessageList\", {\"fetchMessages\": true, \"fetchMessageProperties\": [\"bcc\"] }, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2907,7 +2909,7 @@ public abstract class SetMessagesMethodTest {
 
         // Given
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -2916,7 +2918,7 @@ public abstract class SetMessagesMethodTest {
         // Then
         calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> messageHasBeenMovedToSentBox(sentMailboxId));
         with()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body("[[\"getMessageList\", {\"fetchMessages\":true, \"fetchMessageProperties\": [\"bcc\"], \"filter\":{\"inMailboxes\":[\"" + sentMailboxId + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2964,7 +2966,7 @@ public abstract class SetMessagesMethodTest {
 
         // Given
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -2973,7 +2975,7 @@ public abstract class SetMessagesMethodTest {
         // Then
         calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body("[[\"getMessageList\", {\"fetchMessages\": true, \"fetchMessageProperties\": [\"bcc\"] }, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -2988,7 +2990,7 @@ public abstract class SetMessagesMethodTest {
     private boolean isAnyMessageFoundInRecipientsMailboxes(AccessToken recipientToken) {
         try {
             with()
-                .header("Authorization", recipientToken.serialize())
+                .header("Authorization", recipientToken.asString())
                 .body("[[\"getMessageList\", {}, \"#0\"]]")
             .when()
                 .post("/jmap")
@@ -3034,7 +3036,7 @@ public abstract class SetMessagesMethodTest {
 
         // Given
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -3077,7 +3079,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3120,7 +3122,7 @@ public abstract class SetMessagesMethodTest {
 
         String notCreatedMessage = ARGUMENTS + ".notCreated[\"" + messageCreationId + "\"]";
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3136,7 +3138,7 @@ public abstract class SetMessagesMethodTest {
     private boolean isHtmlMessageReceived(AccessToken recipientToken) {
         try {
             with()
-                .header("Authorization", recipientToken.serialize())
+                .header("Authorization", recipientToken.asString())
                 .body("[[\"getMessageList\", {\"fetchMessages\": true, \"fetchMessageProperties\": [\"htmlBody\"]}, \"#0\"]]")
             .post("/jmap")
             .then()
@@ -3182,7 +3184,7 @@ public abstract class SetMessagesMethodTest {
 
         // Given
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -3195,7 +3197,7 @@ public abstract class SetMessagesMethodTest {
     private boolean isTextPlusHtmlMessageReceived(AccessToken recipientToken) {
         try {
             with()
-                .header("Authorization", recipientToken.serialize())
+                .header("Authorization", recipientToken.asString())
                 .body("[[\"getMessageList\", {\"fetchMessages\": true, \"fetchMessageProperties\": [\"htmlBody\", \"textBody\"]}, \"#0\"]]")
             .post("/jmap")
             .then()
@@ -3232,7 +3234,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3265,14 +3267,14 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
 
         String firstMessage = ARGUMENTS + ".list[0]";
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageToMoveId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -3309,14 +3311,14 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
 
         String firstMessage = ARGUMENTS + ".list[0]";
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageToMoveId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -3353,14 +3355,14 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
 
         String firstMessage = ARGUMENTS + ".list[0]";
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageToMoveId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -3393,14 +3395,14 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
 
         String firstMessage = ARGUMENTS + ".list[0]";
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageToMoveId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -3437,7 +3439,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3470,7 +3472,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3509,7 +3511,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3542,14 +3544,14 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
 
         String firstMessage = ARGUMENTS + ".list[0]";
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageToMoveId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -3584,7 +3586,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3621,14 +3623,14 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
 
         String firstMessage = ARGUMENTS + ".list[0]";
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageToMoveId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -3668,7 +3670,7 @@ public abstract class SetMessagesMethodTest {
         String notCreatedPath = ARGUMENTS + ".notCreated[\"" + messageCreationId + "\"]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3729,7 +3731,7 @@ public abstract class SetMessagesMethodTest {
         String secondAttachment = createdPath + ".attachments[1]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3822,7 +3824,7 @@ public abstract class SetMessagesMethodTest {
         String thirdAttachment = createdPath + ".attachments[2]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -3905,7 +3907,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap").then();
@@ -3920,7 +3922,7 @@ public abstract class SetMessagesMethodTest {
         String inboxId = getMailboxId(accessToken, Role.INBOX);
         String receivedMessageId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}}, \"#0\"]]")
                 .post("/jmap")
             .then()
@@ -3928,7 +3930,7 @@ public abstract class SetMessagesMethodTest {
                 .path(ARGUMENTS + ".messageIds[0]");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + receivedMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -3945,7 +3947,7 @@ public abstract class SetMessagesMethodTest {
 
     private String uploadAttachment(Attachment attachment) throws IOException {
         return with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .contentType(attachment.getType())
             .body(attachment.getStream())
             .post("/upload")
@@ -3958,7 +3960,7 @@ public abstract class SetMessagesMethodTest {
 
     private String uploadTextAttachment(Attachment attachment) throws IOException {
         return with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .contentType(attachment.getType())
             .body(new String(IOUtils.toByteArray(attachment.getStream()), StandardCharsets.UTF_8))
             .post("/upload")
@@ -4011,7 +4013,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .post("/jmap");
 
@@ -4020,7 +4022,7 @@ public abstract class SetMessagesMethodTest {
         String inboxId = getMailboxId(accessToken, Role.INBOX);
         String receivedMessageId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}}, \"#0\"]]")
             .post("/jmap")
             .then()
@@ -4030,7 +4032,7 @@ public abstract class SetMessagesMethodTest {
         String firstMessage = ARGUMENTS + ".list[0]";
         String firstAttachment = firstMessage + ".attachments[0]";
         String blobId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + receivedMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4087,7 +4089,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
@@ -4097,7 +4099,7 @@ public abstract class SetMessagesMethodTest {
         String inboxId = getMailboxId(accessToken, Role.INBOX);
         String receivedMessageId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}}, \"#0\"]]")
             .post("/jmap")
             .then()
@@ -4107,7 +4109,7 @@ public abstract class SetMessagesMethodTest {
         String firstMessage = ARGUMENTS + ".list[0]";
         String firstAttachment = firstMessage + ".attachments[0]";
         String blobId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + receivedMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4131,7 +4133,7 @@ public abstract class SetMessagesMethodTest {
         try {
             String inboxId = getMailboxId(recipientToken, Role.INBOX);
             with()
-                .header("Authorization", recipientToken.serialize())
+                .header("Authorization", recipientToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}}, \"#0\"]]")
             .when()
                 .post("/jmap")
@@ -4184,7 +4186,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
@@ -4194,7 +4196,7 @@ public abstract class SetMessagesMethodTest {
         String inboxId = getMailboxId(accessToken, Role.INBOX);
         String receivedMessageId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}}, \"#0\"]]")
             .post("/jmap")
             .then()
@@ -4204,7 +4206,7 @@ public abstract class SetMessagesMethodTest {
         String firstMessage = ARGUMENTS + ".list[0]";
         String firstAttachment = firstMessage + ".attachments[0]";
         String blobId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + receivedMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4262,7 +4264,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
@@ -4272,7 +4274,7 @@ public abstract class SetMessagesMethodTest {
         String inboxId = getMailboxId(accessToken, Role.INBOX);
         String receivedMessageId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}}, \"#0\"]]")
             .post("/jmap")
             .then()
@@ -4282,7 +4284,7 @@ public abstract class SetMessagesMethodTest {
         String firstMessage = ARGUMENTS + ".list[0]";
         String firstAttachment = firstMessage + ".attachments[0]";
         String blobId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + receivedMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4305,7 +4307,7 @@ public abstract class SetMessagesMethodTest {
 
     public void checkBlobContent(String blobId, byte[] rawBytes) {
         byte[] attachmentBytes = with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .get("/download/" + blobId)
         .then()
             .extract()
@@ -4349,7 +4351,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
@@ -4359,7 +4361,7 @@ public abstract class SetMessagesMethodTest {
         String inboxId = getMailboxId(accessToken, Role.INBOX);
         String receivedMessageId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}}, \"#0\"]]")
             .post("/jmap")
             .then()
@@ -4369,7 +4371,7 @@ public abstract class SetMessagesMethodTest {
         String firstMessage = ARGUMENTS + ".list[0]";
         String firstAttachment = firstMessage + ".attachments[0]";
         String blobId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + receivedMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4416,7 +4418,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .post("/jmap");
 
@@ -4453,7 +4455,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .post("/jmap");
 
@@ -4480,7 +4482,7 @@ public abstract class SetMessagesMethodTest {
     private boolean messageInMailboxHasHeaders(String mailboxId, ImmutableList<String> expectedHeaders) {
         try {
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", "
                     + "{"
                     + "\"fetchMessages\": true, "
@@ -4529,7 +4531,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         // When
         .post("/jmap")
@@ -4543,7 +4545,7 @@ public abstract class SetMessagesMethodTest {
         String message = ARGUMENTS + ".list[0]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4578,7 +4580,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -4592,7 +4594,7 @@ public abstract class SetMessagesMethodTest {
         String message = ARGUMENTS + ".list[0]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4630,7 +4632,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
@@ -4640,7 +4642,7 @@ public abstract class SetMessagesMethodTest {
         String message = ARGUMENTS + ".list[0]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + firstMessage.jmapMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4677,7 +4679,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap");
@@ -4687,7 +4689,7 @@ public abstract class SetMessagesMethodTest {
         String message = ARGUMENTS + ".list[0]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + firstMessage.jmapMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4725,7 +4727,7 @@ public abstract class SetMessagesMethodTest {
 
         String draftId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body(createDraft)
                 .post("/jmap")
             .then()
@@ -4746,7 +4748,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(moveDraftToOutBox)
             .post("/jmap");
 
@@ -4755,7 +4757,7 @@ public abstract class SetMessagesMethodTest {
         String message = ARGUMENTS + ".list[0]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + firstMessage.jmapMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4793,7 +4795,7 @@ public abstract class SetMessagesMethodTest {
 
         String draftId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body(createDraft)
                 .post("/jmap")
             .then()
@@ -4814,7 +4816,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(moveDraftToOutBox)
             .post("/jmap");
 
@@ -4823,7 +4825,7 @@ public abstract class SetMessagesMethodTest {
         String message = ARGUMENTS + ".list[0]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + firstMessage.jmapMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4855,14 +4857,14 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         with()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
         .post("/jmap");
 
         calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInInbox(accessToken));
 
         String jmapMessageId = with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4872,7 +4874,7 @@ public abstract class SetMessagesMethodTest {
             .<String>path(ARGUMENTS + ".messageIds[0]");
 
         String mimeMessageId = with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + jmapMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4919,7 +4921,7 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .post("/jmap");
 
@@ -4929,7 +4931,7 @@ public abstract class SetMessagesMethodTest {
 
         String message = SECOND_ARGUMENTS + ".list[0]";
         with()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body("[[\"getMessageList\", {\"fetchMessages\":true, \"fetchMessageProperties\": [\"headers\"], \"filter\":{\"inMailboxes\":[\"" + sentMailboxId + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -4964,7 +4966,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         // When
         .post("/jmap")
@@ -4978,7 +4980,7 @@ public abstract class SetMessagesMethodTest {
         String message = ARGUMENTS + ".list[0]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -5011,7 +5013,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .post("/jmap");
 
@@ -5048,7 +5050,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         // When
         .post("/jmap")
@@ -5062,7 +5064,7 @@ public abstract class SetMessagesMethodTest {
         String message = ARGUMENTS + ".list[0]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -5115,7 +5117,7 @@ public abstract class SetMessagesMethodTest {
         String singleAttachment = createdPath + ".attachments[0]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5164,7 +5166,7 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         String messageId = with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         // When
         .post("/jmap")
@@ -5178,7 +5180,7 @@ public abstract class SetMessagesMethodTest {
         String message = ARGUMENTS + ".list[0]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -5225,14 +5227,14 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .post("/jmap");
 
         calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInInbox(accessToken));
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{" +
                 "   \"body\": \"Test body\", " +
                 "   \"inMailboxes\":[\"" + inboxId  + "\"]}}, " +
@@ -5292,7 +5294,7 @@ public abstract class SetMessagesMethodTest {
         String secondAttachment = createdPath + ".attachments[1]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5325,7 +5327,7 @@ public abstract class SetMessagesMethodTest {
         String messageId = message.getMessageId().serialize();
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"keywords\": {\"$Seen\": true, \"$Unknown\": true} } } }, \"#0\"]]", messageId))
         .when()
             .post("/jmap")
@@ -5356,7 +5358,7 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5389,7 +5391,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5424,7 +5426,7 @@ public abstract class SetMessagesMethodTest {
         String inboxId = getMailboxId(accessToken, Role.INBOX);
         String receivedMessageId =
             with()
-                .header("Authorization", accessToken.serialize())
+                .header("Authorization", accessToken.asString())
                 .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + inboxId + "\"]}}, \"#0\"]]")
                 .post("/jmap")
             .then()
@@ -5432,7 +5434,7 @@ public abstract class SetMessagesMethodTest {
                 .path(ARGUMENTS + ".messageIds[0]");
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + receivedMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -5478,7 +5480,7 @@ public abstract class SetMessagesMethodTest {
 
         // Given
         given()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body(requestBody)
         // When
         .when()
@@ -5487,7 +5489,7 @@ public abstract class SetMessagesMethodTest {
         // Then
         calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> messageHasBeenMovedToSentBox(sentMailboxId));
         with()
-            .header("Authorization", this.accessToken.serialize())
+            .header("Authorization", this.accessToken.asString())
             .body("[[\"getMessageList\", {\"fetchMessages\":true, \"fetchMessageProperties\": [\"keywords\"], \"filter\":{\"inMailboxes\":[\"" + sentMailboxId + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -5524,7 +5526,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5534,7 +5536,7 @@ public abstract class SetMessagesMethodTest {
             .path(ARGUMENTS + ".created." + messageCreationId + ".id");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -5570,7 +5572,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5595,13 +5597,13 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(updateRequestBody)
         .when()
             .post("/jmap");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -5640,7 +5642,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5665,13 +5667,13 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(updateRequestBody)
         .when()
             .post("/jmap");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -5710,7 +5712,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5736,7 +5738,7 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(updateRequestBody)
         .when()
             .post("/jmap")
@@ -5772,7 +5774,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String messageId = given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5798,13 +5800,13 @@ public abstract class SetMessagesMethodTest {
                 "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(updateRequestBody)
         .when()
             .post("/jmap");
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + messageId + "\"]}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -5838,7 +5840,7 @@ public abstract class SetMessagesMethodTest {
             "]";
 
         String creationMimeMessageId = given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(requestBody)
         .when()
             .post("/jmap")
@@ -5850,7 +5852,7 @@ public abstract class SetMessagesMethodTest {
         calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInInbox(accessToken));
 
         String jmapMessageId = with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -5859,7 +5861,7 @@ public abstract class SetMessagesMethodTest {
             .path(ARGUMENTS + ".messageIds[0]");
 
         String receivedMimeMessageId = with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessages\", {\"ids\": [\"" + jmapMessageId + "\"]}, \"#0\"]]")
         .when()
             .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesOutboxFlagUpdateTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesOutboxFlagUpdateTest.java
index 4bbc40a..dbf9b0b 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesOutboxFlagUpdateTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesOutboxFlagUpdateTest.java
@@ -23,13 +23,13 @@ import static io.restassured.RestAssured.given;
 import static io.restassured.RestAssured.with;
 import static io.restassured.config.EncoderConfig.encoderConfig;
 import static io.restassured.config.RestAssuredConfig.newConfig;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.getSetMessagesUpdateOKResponseAssertions;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.BOB;
-import static org.apache.james.jmap.TestingConstants.BOB_PASSWORD;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
 
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
@@ -40,8 +40,9 @@ import java.util.Set;
 import org.apache.commons.lang3.NotImplementedException;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.HttpJmapAuthentication;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.probe.MailboxProbe;
 import org.apache.james.modules.MailboxProbeImpl;
@@ -49,7 +50,6 @@ import org.apache.james.probe.DataProbe;
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.mailet.Mail;
 import org.junit.After;
 import org.junit.Before;
@@ -156,12 +156,12 @@ public abstract class SetMessagesOutboxFlagUpdateTest {
             "]";
 
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(requestBody)
             .post("/jmap");
 
         String jmapMessageId = with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
             .post("/jmap")
         .then()
@@ -182,7 +182,7 @@ public abstract class SetMessagesOutboxFlagUpdateTest {
             "]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(updateRequestBody)
         .when()
             .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetVacationResponseTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetVacationResponseTest.java
index e40d5e3..914d26e 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetVacationResponseTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetVacationResponseTest.java
@@ -21,11 +21,11 @@ package org.apache.james.jmap.draft.methods.integration;
 
 import static io.restassured.RestAssured.given;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.DOMAIN;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 
@@ -35,14 +35,14 @@ import java.util.Optional;
 
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.api.vacation.AccountId;
 import org.apache.james.jmap.api.vacation.Vacation;
 import org.apache.james.jmap.api.vacation.VacationPatch;
 import org.apache.james.jmap.categories.BasicFeature;
+import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.util.ValuePatch;
 import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -103,7 +103,7 @@ public abstract class SetVacationResponseTest {
             "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
         .when()
             .post("/jmap")
@@ -134,7 +134,7 @@ public abstract class SetVacationResponseTest {
         given()
             .accept(ContentType.JSON)
             .contentType(ContentType.JSON)
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
         .when()
             .post("/jmap")
@@ -161,7 +161,7 @@ public abstract class SetVacationResponseTest {
             "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
         .when()
             .post("/jmap")
@@ -194,7 +194,7 @@ public abstract class SetVacationResponseTest {
             "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
         .when()
             .post("/jmap")
@@ -234,7 +234,7 @@ public abstract class SetVacationResponseTest {
             "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
         .when()
             .post("/jmap")
@@ -274,7 +274,7 @@ public abstract class SetVacationResponseTest {
         given()
             .accept(ContentType.JSON)
             .contentType(ContentType.JSON)
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
             .when()
             .post("/jmap")
@@ -313,7 +313,7 @@ public abstract class SetVacationResponseTest {
             "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
             .when()
             .post("/jmap")
@@ -348,7 +348,7 @@ public abstract class SetVacationResponseTest {
             "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
             .when()
             .post("/jmap")
@@ -384,7 +384,7 @@ public abstract class SetVacationResponseTest {
             "]]";
 
         given()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
         .when()
             .post("/jmap")
@@ -417,7 +417,7 @@ public abstract class SetVacationResponseTest {
         given()
             .accept(ContentType.JSON)
             .contentType(ContentType.JSON)
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body(bodyRequest)
         .when()
             .post("/jmap")
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SpamAssassinContract.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SpamAssassinContract.java
index cabc051..f7f7531 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SpamAssassinContract.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SpamAssassinContract.java
@@ -24,11 +24,11 @@ import static io.restassured.RestAssured.with;
 import static io.restassured.config.EncoderConfig.encoderConfig;
 import static io.restassured.config.RestAssuredConfig.newConfig;
 import static org.apache.james.jmap.HttpJmapAuthentication.authenticateJamesUser;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.LOCALHOST_IP;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
 import static org.apache.james.jmap.JmapURIBuilder.baseUri;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.LOCALHOST_IP;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.hasSize;
@@ -39,7 +39,7 @@ import java.util.Map;
 
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.mailbox.Role;
 import org.apache.james.modules.protocols.ImapGuiceProbe;
@@ -108,7 +108,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending a message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -118,7 +118,7 @@ public interface SpamAssassinContract {
 
         // Alice is moving this message to Spam -> learning in SpamAssassin
         List<String> messageIds = with()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + getInboxId(aliceAccessToken) + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -131,7 +131,7 @@ public interface SpamAssassinContract {
 
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"mailboxIds\": [\"" + getSpamId(aliceAccessToken) + "\"] } } }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -143,7 +143,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending again the same message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -161,7 +161,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending a message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -181,7 +181,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending again the same message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -199,7 +199,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending a message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -217,7 +217,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending again the same message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -235,7 +235,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending a message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
             .when()
             .post("/jmap");
@@ -244,7 +244,7 @@ public interface SpamAssassinContract {
 
         // Alice is moving this message to Spam -> learning in SpamAssassin
         List<String> messageIds = with()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + getInboxId(aliceAccessToken) + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -257,7 +257,7 @@ public interface SpamAssassinContract {
 
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"mailboxIds\": [\"" + getSpamId(aliceAccessToken) + "\"] } } }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -270,7 +270,7 @@ public interface SpamAssassinContract {
         // Alice is moving this message out of Spam -> forgetting in SpamAssassin
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"mailboxIds\": [\"" + getInboxId(aliceAccessToken) + "\"] } } }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -282,7 +282,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending again the same message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -300,7 +300,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending a message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
             .when()
             .post("/jmap");
@@ -309,7 +309,7 @@ public interface SpamAssassinContract {
 
         // Alice is moving this message to Spam -> learning in SpamAssassin
         List<String> messageIds = with()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + getInboxId(aliceAccessToken) + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -322,7 +322,7 @@ public interface SpamAssassinContract {
 
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"mailboxIds\": [\"" + getSpamId(aliceAccessToken) + "\"] } } }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -335,7 +335,7 @@ public interface SpamAssassinContract {
         // Alice is moving this message to trash
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"mailboxIds\": [\"" + getTrashId(aliceAccessToken) + "\"] } } }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -347,7 +347,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending again the same message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -365,7 +365,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending a message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
             .when()
             .post("/jmap");
@@ -374,7 +374,7 @@ public interface SpamAssassinContract {
 
         // Alice is moving this message to Spam -> learning in SpamAssassin
         List<String> messageIds = with()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + getInboxId(aliceAccessToken) + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -387,7 +387,7 @@ public interface SpamAssassinContract {
 
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"mailboxIds\": [\"" + getSpamId(aliceAccessToken) + "\"] } } }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -409,7 +409,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending again the same message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -427,7 +427,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending a message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
             .when()
             .post("/jmap");
@@ -436,7 +436,7 @@ public interface SpamAssassinContract {
 
         // Alice is moving this message to Spam -> learning in SpamAssassin
         List<String> messageIds = with()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + getInboxId(aliceAccessToken) + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -449,7 +449,7 @@ public interface SpamAssassinContract {
 
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"mailboxIds\": [\"" + getSpamId(aliceAccessToken) + "\"] } } }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -472,7 +472,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending again the same message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -490,7 +490,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending a message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
             .when()
             .post("/jmap");
@@ -499,7 +499,7 @@ public interface SpamAssassinContract {
 
         // Alice is moving this message to Spam -> learning in SpamAssassin
         List<String> messageIds = with()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + getInboxId(aliceAccessToken) + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -512,7 +512,7 @@ public interface SpamAssassinContract {
 
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"mailboxIds\": [\"" + getSpamId(aliceAccessToken) + "\"] } } }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -525,7 +525,7 @@ public interface SpamAssassinContract {
         // Alice is deleting this message
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"destroy\": [\"%s\"] }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -537,7 +537,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending again the same message to Alice
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreate(bobAccessToken))
         .when()
             .post("/jmap");
@@ -574,7 +574,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending a message to Alice & Paul
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreateToMultipleRecipients(bobAccessToken))
         .when()
             .post("/jmap");
@@ -583,7 +583,7 @@ public interface SpamAssassinContract {
 
         // Alice is moving this message to Spam -> learning in SpamAssassin
         List<String> messageIds = with()
-            .header("Authorization", aliceAccessToken.serialize())
+            .header("Authorization", aliceAccessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + getInboxId(aliceAccessToken) + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -596,7 +596,7 @@ public interface SpamAssassinContract {
 
         messageIds
             .forEach(messageId -> given()
-                .header("Authorization", aliceAccessToken.serialize())
+                .header("Authorization", aliceAccessToken.asString())
                 .body(String.format("[[\"setMessages\", {\"update\": {\"%s\" : { \"mailboxIds\": [\"" + getSpamId(aliceAccessToken) + "\"] } } }, \"#0\"]]", messageId))
             .when()
                 .post("/jmap")
@@ -608,7 +608,7 @@ public interface SpamAssassinContract {
 
         // Bob is sending again the same message to Alice & Paul
         given()
-            .header("Authorization", bobAccessToken.serialize())
+            .header("Authorization", bobAccessToken.asString())
             .body(setMessageCreateToMultipleRecipients(bobAccessToken))
         .when()
             .post("/jmap");
@@ -642,7 +642,7 @@ public interface SpamAssassinContract {
 
     default void assertMessagesFoundInMailbox(AccessToken accessToken, String mailboxId, int expectedNumberOfMessages) {
         with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + mailboxId + "\"]}}, \"#0\"]]")
         .when()
             .post("/jmap")
@@ -661,7 +661,7 @@ public interface SpamAssassinContract {
 
     default List<Map<String, String>> getAllMailboxesIds(AccessToken accessToken) {
         return with()
-            .header("Authorization", accessToken.serialize())
+            .header("Authorization", accessToken.asString())
             .body("[[\"getMailboxes\", {\"properties\": [\"role\", \"id\"]}, \"#0\"]]")
         .post("/jmap")
             .andReturn()
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/DownloadStepdefs.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/DownloadStepdefs.java
index 28b274b..9413cbb 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/DownloadStepdefs.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/DownloadStepdefs.java
@@ -41,7 +41,7 @@ import org.apache.http.client.fluent.Request;
 import org.apache.http.client.fluent.Response;
 import org.apache.http.client.utils.URIBuilder;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.jmap.draft.model.AttachmentAccessToken;
 import org.apache.james.mailbox.MessageManager.AppendCommand;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -179,7 +179,7 @@ public class DownloadStepdefs {
         URI target = baseUri(mainStepdefs.jmapServer).setPath("/download/" + ONE_ATTACHMENT_EML_ATTACHMENT_BLOB_ID).build();
         Request request = Request.Options(target);
         if (accessToken != null) {
-            request.addHeader("Authorization", accessToken.serialize());
+            request.addHeader("Authorization", accessToken.asString());
         }
         response = request.execute().returnResponse();
     }
@@ -227,7 +227,7 @@ public class DownloadStepdefs {
         }
         Request request = Request.Get(uriBuilder.build());
         if (accessToken != null) {
-            request.addHeader("Authorization", accessToken.serialize());
+            request.addHeader("Authorization", accessToken.asString());
         }
         return request;
     }
@@ -275,7 +275,7 @@ public class DownloadStepdefs {
 
     private void trustForBlobId(String blobId, String username) throws Exception {
         Response tokenGenerationResponse = Request.Post(baseUri(mainStepdefs.jmapServer).setPath("/download/" + blobId).build())
-            .addHeader("Authorization", userStepdefs.authenticate(username).serialize())
+            .addHeader("Authorization", userStepdefs.authenticate(username).asString())
             .execute();
         String serializedAttachmentAccessToken = tokenGenerationResponse.returnContent().asString();
         attachmentAccessTokens.put(
@@ -290,7 +290,7 @@ public class DownloadStepdefs {
         userStepdefs.execWithUser(username, () -> {
             URIBuilder uriBuilder = baseUri(mainStepdefs.jmapServer).setPath("/download/badblobId");
             response = Request.Get(uriBuilder.build())
-                .addHeader("Authorization", userStepdefs.authenticate(username).serialize())
+                .addHeader("Authorization", userStepdefs.authenticate(username).asString())
                 .execute()
                 .returnResponse();
 
@@ -372,7 +372,7 @@ public class DownloadStepdefs {
         String blobId = blobIdByAttachmentId.get(attachmentId);
         AccessToken accessToken = userStepdefs.authenticate(username);
         response = Request.Post(baseUri(mainStepdefs.jmapServer).setPath("/download/" + blobId).build())
-                .addHeader("Authorization", accessToken.serialize())
+                .addHeader("Authorization", accessToken.asString())
                 .execute()
                 .returnResponse();
     }
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMailboxesMethodStepdefs.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMailboxesMethodStepdefs.java
index 06fc697..e66b608 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMailboxesMethodStepdefs.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMailboxesMethodStepdefs.java
@@ -21,8 +21,8 @@ package org.apache.james.jmap.draft.methods.integration.cucumber;
 
 import static com.jayway.jsonpath.Criteria.where;
 import static com.jayway.jsonpath.Filter.filter;
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.ArrayList;
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessageListMethodStepdefs.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessageListMethodStepdefs.java
index 7bf8190..516bdb5 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessageListMethodStepdefs.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessageListMethodStepdefs.java
@@ -19,8 +19,8 @@
 
 package org.apache.james.jmap.draft.methods.integration.cucumber;
 
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
 
 import java.util.List;
 import java.util.concurrent.TimeUnit;
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessagesMethodStepdefs.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessagesMethodStepdefs.java
index d694e3e..6d9c865 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessagesMethodStepdefs.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessagesMethodStepdefs.java
@@ -19,8 +19,9 @@
 
 package org.apache.james.jmap.draft.methods.integration.cucumber;
 
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
 import static org.apache.james.mailbox.model.MailboxConstants.INBOX;
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -42,7 +43,6 @@ import javax.mail.Flags;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.text.StringEscapeUtils;
 import org.apache.james.core.Username;
-import org.apache.james.jmap.TestingConstants;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.jmap.draft.methods.integration.cucumber.util.TableRow;
 import org.apache.james.mailbox.model.MailboxConstants;
@@ -395,7 +395,7 @@ public class GetMessagesMethodStepdefs {
                 ClassLoaderUtils.getSystemResourceAsString(fileName));
         smtpMessageSender.close();
 
-        TestingConstants.calmlyAwait.until(() -> !retrieveIds(user, mailboxId).isEmpty());
+        calmlyAwait.until(() -> !retrieveIds(user, mailboxId).isEmpty());
         List<String> ids = retrieveIds(user, mailboxId);
         messageIdStepdefs.addMessageId(messageName, mainStepdefs.messageIdFactory.fromString(ids.get(0)));
     }
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/HttpClient.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/HttpClient.java
index d5678ac..648e928 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/HttpClient.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/HttpClient.java
@@ -46,7 +46,7 @@ public class HttpClient {
 
     public void post(String requestBody) throws Exception {
         response = Request.Post(baseUri(mainStepdefs.jmapServer).setPath("/jmap").build())
-            .addHeader("Authorization", userStepdefs.authenticate(userStepdefs.getConnectedUser()).serialize())
+            .addHeader("Authorization", userStepdefs.authenticate(userStepdefs.getConnectedUser()).asString())
             .addHeader("Accept", org.apache.http.entity.ContentType.APPLICATION_JSON.getMimeType())
             .bodyString(requestBody, org.apache.http.entity.ContentType.APPLICATION_JSON)
             .execute()
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/SetMailboxesMethodStepdefs.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/SetMailboxesMethodStepdefs.java
index 6edba1b..13547c0 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/SetMailboxesMethodStepdefs.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/SetMailboxesMethodStepdefs.java
@@ -19,9 +19,9 @@
 
 package org.apache.james.jmap.draft.methods.integration.cucumber;
 
-import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
-import static org.apache.james.jmap.TestingConstants.NAME;
-import static org.apache.james.jmap.TestingConstants.calmlyAwait;
+import static org.apache.james.jmap.JMAPTestingConstants.ARGUMENTS;
+import static org.apache.james.jmap.JMAPTestingConstants.NAME;
+import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.nio.charset.StandardCharsets;
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UploadStepdefs.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UploadStepdefs.java
index 998e340..9fe7661 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UploadStepdefs.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UploadStepdefs.java
@@ -40,7 +40,7 @@ import org.apache.http.client.fluent.Request;
 import org.apache.http.concurrent.FutureCallback;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 import org.apache.james.util.CountDownConsumeInputStream;
 import org.apache.james.util.ZeroedInputStream;
 
@@ -82,7 +82,7 @@ public class UploadStepdefs {
         Request request = Request.Post(uploadUri)
             .bodyStream(new BufferedInputStream(bodyStream, _1M), org.apache.http.entity.ContentType.DEFAULT_BINARY);
         if (accessToken != null) {
-            request.addHeader("Authorization", accessToken.serialize());
+            request.addHeader("Authorization", accessToken.asString());
         }
         async = Async.newInstance().execute(request, new FutureCallback<Content>() {
             
@@ -110,7 +110,7 @@ public class UploadStepdefs {
         Request request = Request.Post(uploadUri)
             .bodyStream(new BufferedInputStream(new ZeroedInputStream(_1M), _1M), org.apache.http.entity.ContentType.DEFAULT_BINARY);
 
-        request.addHeader("Authorization", accessToken.serialize());
+        request.addHeader("Authorization", accessToken.asString());
         response = Executor.newInstance(newClient())
             .execute(request)
             .returnResponse();
@@ -137,7 +137,7 @@ public class UploadStepdefs {
         Request request = Request.Post(uploadUri)
                 .bodyByteArray("some text".getBytes(StandardCharsets.UTF_8));
         if (accessToken != null) {
-            request.addHeader("Authorization", accessToken.serialize());
+            request.addHeader("Authorization", accessToken.asString());
         }
         response = request.execute().returnResponse();
     }
@@ -148,7 +148,7 @@ public class UploadStepdefs {
         Request request = Request.Post(uploadUri)
                 .bodyStream(new BufferedInputStream(new ZeroedInputStream(_10M), _10M), org.apache.http.entity.ContentType.DEFAULT_BINARY);
         if (accessToken != null) {
-            request.addHeader("Authorization", accessToken.serialize());
+            request.addHeader("Authorization", accessToken.asString());
         }
         response = request.execute().returnResponse();
     }
@@ -219,7 +219,7 @@ public class UploadStepdefs {
         DocumentContext jsonPath = JsonPath.parse(response.getEntity().getContent());
         Request request = Request.Get(baseUri(mainStepdefs.jmapServer).setPath("/download/" + jsonPath.<String>read("blobId")).build());
         if (accessToken != null) {
-            request.addHeader("Authorization", accessToken.serialize());
+            request.addHeader("Authorization", accessToken.asString());
         }
         response = request.execute().returnResponse();
         httpAuthorizedStatus();
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UserStepdefs.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UserStepdefs.java
index 5106af9..6321753 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UserStepdefs.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UserStepdefs.java
@@ -33,7 +33,7 @@ import java.util.Set;
 import javax.inject.Inject;
 
 import org.apache.james.core.Username;
-import org.apache.james.jmap.api.access.AccessToken;
+import org.apache.james.jmap.AccessToken;
 
 import com.github.fge.lambdas.Throwing;
 import com.github.fge.lambdas.runnable.ThrowingRunnable;
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/ForwardIntegrationTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/ForwardIntegrationTest.java
index bc64e4e..9360240 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/ForwardIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/ForwardIntegrationTest.java
@@ -35,7 +35,7 @@ import static org.apache.james.jmap.JMAPTestingConstants.calmlyAwait;
 import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.isAnyMessageFoundInRecipientsMailboxes;
-import static org.apache.james.jmap.JmapURIBuilder.baseUri;
+import static org.apache.james.jmap.LocalHostURIBuilder.baseUri;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.hasSize;
 
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/ReindexingWithEventDeadLettersTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/ReindexingWithEventDeadLettersTest.java
index 3a08205..3a8da2b 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/ReindexingWithEventDeadLettersTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/ReindexingWithEventDeadLettersTest.java
@@ -39,7 +39,7 @@ import org.apache.james.GuiceJamesServer;
 import org.apache.james.JamesServerBuilder;
 import org.apache.james.JamesServerExtension;
 import org.apache.james.jmap.AccessToken;
-import org.apache.james.jmap.JmapURIBuilder;
+import org.apache.james.jmap.LocalHostURIBuilder;
 import org.apache.james.jmap.draft.JmapGuiceProbe;
 import org.apache.james.jmap.draft.JmapJamesServerContract;
 import org.apache.james.modules.AwsS3BlobStoreExtension;
@@ -110,7 +110,7 @@ class ReindexingWithEventDeadLettersTest {
 
         webAdminApi = WebAdminUtils.spec(jamesServer.getProbe(WebAdminGuiceProbe.class).getWebAdminPort());
 
-        aliceAccessToken = authenticateJamesUser(JmapURIBuilder.baseUri(jmapPort), ALICE, ALICE_PASSWORD);
+        aliceAccessToken = authenticateJamesUser(LocalHostURIBuilder.baseUri(jmapPort), ALICE, ALICE_PASSWORD);
 
         dockerElasticSearch.getDockerES().pause();
         Thread.sleep(Duration.TEN_SECONDS.getValueInMS()); // Docker pause is asynchronous and we found no way to poll for it
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
index 1cfb5e2..7d1767f 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
@@ -33,7 +33,7 @@ import static org.apache.james.jmap.JmapCommonRequests.getAllMailboxesIds;
 import static org.apache.james.jmap.JmapCommonRequests.getLastMessageId;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.listMessageIdsForAccount;
-import static org.apache.james.jmap.JmapURIBuilder.baseUri;
+import static org.apache.james.jmap.LocalHostURIBuilder.baseUri;
 import static org.apache.james.mailbox.backup.ZipAssert.EntryChecks.hasName;
 import static org.apache.james.mailbox.backup.ZipAssert.assertThatZip;
 import static org.apache.james.webadmin.integration.vault.DeletedMessagesVaultRequests.deleteFromVault;
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/LinshareBlobExportMechanismIntegrationTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/LinshareBlobExportMechanismIntegrationTest.java
index cd38122..3f4b3b6 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/LinshareBlobExportMechanismIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/vault/LinshareBlobExportMechanismIntegrationTest.java
@@ -30,7 +30,7 @@ import static org.apache.james.jmap.JMAPTestingConstants.jmapRequestSpecBuilder;
 import static org.apache.james.jmap.JmapCommonRequests.deleteMessages;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.listMessageIdsForAccount;
-import static org.apache.james.jmap.JmapURIBuilder.baseUri;
+import static org.apache.james.jmap.LocalHostURIBuilder.baseUri;
 import static org.apache.james.linshare.LinshareFixture.MATCH_ALL_QUERY;
 import static org.apache.james.linshare.LinshareFixture.USER_1;
 import static org.apache.james.mailbox.backup.ZipAssert.assertThatZip;
diff --git a/server/testing/src/main/java/org/apache/james/jmap/JmapURIBuilder.java b/server/testing/src/main/java/org/apache/james/jmap/LocalHostURIBuilder.java
similarity index 97%
rename from server/testing/src/main/java/org/apache/james/jmap/JmapURIBuilder.java
rename to server/testing/src/main/java/org/apache/james/jmap/LocalHostURIBuilder.java
index aed6767..e920ffd 100644
--- a/server/testing/src/main/java/org/apache/james/jmap/JmapURIBuilder.java
+++ b/server/testing/src/main/java/org/apache/james/jmap/LocalHostURIBuilder.java
@@ -23,7 +23,7 @@ import java.nio.charset.StandardCharsets;
 import org.apache.http.client.utils.URIBuilder;
 import org.apache.james.util.Port;
 
-public class JmapURIBuilder {
+public class LocalHostURIBuilder {
 
     public static URIBuilder baseUri(Port jmapPort) {
         return new URIBuilder()


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org