diff --git a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/GitHubLogin.java b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/GitHubLogin.java
index b774419..3aca14a 100644
--- a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/GitHubLogin.java
+++ b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/GitHubLogin.java
@@ -20,7 +20,6 @@
 import com.google.common.base.Strings;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import com.googlesource.gerrit.plugins.github.oauth.OAuthProtocol.AccessToken;
 import com.googlesource.gerrit.plugins.github.oauth.OAuthProtocol.Scope;
 import java.io.IOException;
 import java.io.Serializable;
@@ -34,7 +33,6 @@
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import lombok.Getter;
 import org.kohsuke.github.GHMyself;
 import org.kohsuke.github.GitHub;
 import org.kohsuke.github.GitHubBuilder;
@@ -59,7 +57,7 @@
     }
   }
 
-  @Getter private AccessToken token;
+  private String accessToken;
 
   private String state;
 
@@ -69,6 +67,10 @@
   private final VirtualDomainConfig virtualDomainConfig;
   private final GitHubConnector gitHubConnector;
 
+  public String getAccessToken() {
+    return accessToken;
+  }
+
   public GHMyself getMyself() throws IOException {
     if (isLoggedIn()) {
       return new GitHubMyselfWrapper(getHub().getMyself());
@@ -108,7 +110,7 @@
   }
 
   public boolean isLoggedIn() {
-    return token != null;
+    return accessToken != null;
   }
 
   public void login(
@@ -121,7 +123,7 @@
     log.debug("Login " + this);
     if (OAuthProtocol.isOAuthFinal(request)) {
       log.debug("Login-FINAL " + this);
-      login(oauth.loginPhase2(request, response, state));
+      login(oauth.loginPhase2(request, response, state).accessToken);
       this.state = ""; // Make sure state is used only once
 
       if (isLoggedIn()) {
@@ -143,27 +145,27 @@
   }
 
   public void logout() {
-    token = null;
+    accessToken = null;
   }
 
-  public GitHub login(AccessToken authToken) throws IOException {
-    log.debug("Logging in using access token {}", authToken.accessToken);
-    this.token = authToken;
+  public GitHub login(String authAccessToken) throws IOException {
+    log.debug("Logging in using access token {}", authAccessToken);
+    this.accessToken = authAccessToken;
     return getHub();
   }
 
   @Override
   public String toString() {
-    return "GitHubLogin [token=" + token + ", scopes=" + loginScopes + "]";
+    return "GitHubLogin [token=" + accessToken + ", scopes=" + loginScopes + "]";
   }
 
   public GitHub getHub() throws IOException {
-    if (token == null) {
+    if (accessToken == null) {
       return null;
     }
     return new GitHubBuilder()
         .withEndpoint(config.gitHubApiUrl)
-        .withOAuthToken(token.accessToken)
+        .withOAuthToken(accessToken)
         .withConnector(gitHubConnector)
         .build();
   }
diff --git a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/IdentifiedUserGitHubLoginProvider.java b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/IdentifiedUserGitHubLoginProvider.java
index 63414b2..91505df 100644
--- a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/IdentifiedUserGitHubLoginProvider.java
+++ b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/IdentifiedUserGitHubLoginProvider.java
@@ -65,7 +65,7 @@
       AccessToken accessToken = newAccessTokenFromUser(username);
       if (accessToken != null) {
         GitHubLogin login = gitHubLoginProvider.get();
-        login.login(accessToken);
+        login.login(accessToken.accessToken);
         return login;
       }
       return null;
diff --git a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthCache.java b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthCache.java
index 955c86d..ce1fd5c 100644
--- a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthCache.java
+++ b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthCache.java
@@ -37,7 +37,7 @@
 
     @Override
     public String load(AccessToken accessToken) throws Exception {
-      ghLogin.login(accessToken);
+      ghLogin.login(accessToken.accessToken);
       return ghLogin.getMyself().getLogin();
     }
   }
diff --git a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthWebFilter.java b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthWebFilter.java
index 20b80bd..60cef6a 100644
--- a/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthWebFilter.java
+++ b/github-oauth/src/main/java/com/googlesource/gerrit/plugins/github/oauth/OAuthWebFilter.java
@@ -91,7 +91,7 @@
         }
 
         if (ghLogin != null && ghLogin.isLoggedIn()) {
-          String hashedToken = oAuthTokenCipher.encrypt(ghLogin.getToken().accessToken);
+          String hashedToken = oAuthTokenCipher.encrypt(ghLogin.getAccessToken());
           httpRequest =
               new AuthenticatedHttpRequest(
                   httpRequest,
@@ -131,7 +131,7 @@
       String user = myself.getLogin();
 
       updateSecureConfigWithRetry(
-          ghLogin.getMyOrganisationsLogins(user), user, ghLogin.getToken().accessToken);
+          ghLogin.getMyOrganisationsLogins(user), user, ghLogin.getAccessToken());
     }
   }
 
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/filters/GitHubOAuthFilter.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/filters/GitHubOAuthFilter.java
index b025737..17496fa 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/filters/GitHubOAuthFilter.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/filters/GitHubOAuthFilter.java
@@ -25,7 +25,6 @@
 import com.googlesource.gerrit.plugins.github.oauth.GitHubLogin;
 import com.googlesource.gerrit.plugins.github.oauth.IdentifiedUserGitHubLoginProvider;
 import com.googlesource.gerrit.plugins.github.oauth.OAuthFilter;
-import com.googlesource.gerrit.plugins.github.oauth.OAuthProtocol.AccessToken;
 import com.googlesource.gerrit.plugins.github.oauth.OAuthTokenCipher;
 import com.googlesource.gerrit.plugins.github.oauth.OAuthWebFilter;
 import com.googlesource.gerrit.plugins.github.oauth.ScopedProvider;
@@ -83,7 +82,7 @@
               .substring(
                   ExternalId.SCHEME_EXTERNAL.length() + OAuthWebFilter.GITHUB_EXT_ID.length() + 1);
       String decryptedToken = oAuthTokenCipher.decrypt(oauthToken);
-      hubLogin.login(new AccessToken(decryptedToken));
+      hubLogin.login(decryptedToken);
     }
 
     chain.doFilter(request, response);
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/GitHubRepository.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/GitHubRepository.java
index 09e3fb7..f4321bd 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/GitHubRepository.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/GitHubRepository.java
@@ -66,7 +66,7 @@
     GitHubLogin ghLogin = ghLoginProvider.get();
     GitHub gh = ghLogin.getHub();
     this.username = ghLogin.getMyself().getLogin();
-    this.password = ghLogin.getToken().accessToken;
+    this.password = ghLogin.getAccessToken();
     this.ghRepository = gh.getRepository(organisation + "/" + repository);
   }
 
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/ReplicateProjectStep.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/ReplicateProjectStep.java
index b321127..5109cd2 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/ReplicateProjectStep.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/ReplicateProjectStep.java
@@ -49,7 +49,7 @@
     this.replicationConfig = replicationConfig;
     GitHubLogin ghLogin = ghLoginProvider.get();
     this.authUsername = ghLogin.getMyself().getLogin();
-    this.authToken = ghLogin.getToken().accessToken;
+    this.authToken = ghLogin.getAccessToken();
     this.gitHubUrl = gitHubUrl;
   }
 
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/notification/WebhookServlet.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/notification/WebhookServlet.java
index 1bdce3c..23bad3b 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/notification/WebhookServlet.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/notification/WebhookServlet.java
@@ -167,7 +167,7 @@
         resp.setStatus(SC_INTERNAL_SERVER_ERROR);
         return;
       }
-      requestScopedLoginProvider.get(req).login(login.getToken());
+      requestScopedLoginProvider.get(req).login(login.getAccessToken());
 
       if (callHander(handler, body)) {
         resp.setStatus(SC_NO_CONTENT);
