From ead58b22e04c00ece9f0ea55cbec20d2953f5460 Mon Sep 17 00:00:00 2001 From: sai-sunder-s <4540365+sai-sunder-s@users.noreply.github.com> Date: Wed, 17 Aug 2022 11:35:33 -0700 Subject: [PATCH] fix: change revoke request from get to post (#979) --- .../java/com/google/auth/oauth2/UserAuthorizer.java | 8 ++++++-- .../com/google/auth/oauth2/MockTokenServerTransport.java | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/oauth2_http/java/com/google/auth/oauth2/UserAuthorizer.java b/oauth2_http/java/com/google/auth/oauth2/UserAuthorizer.java index ed55f47af..7b041a319 100644 --- a/oauth2_http/java/com/google/auth/oauth2/UserAuthorizer.java +++ b/oauth2_http/java/com/google/auth/oauth2/UserAuthorizer.java @@ -315,10 +315,14 @@ public void revokeAuthorization(String userId) throws IOException { OAuth2Utils.validateOptionalString(tokenJson, "refresh_token", TOKEN_STORE_ERROR); // If both tokens are present, either can be used String revokeToken = (refreshToken != null) ? refreshToken : accessTokenValue; + GenericUrl revokeUrl = new GenericUrl(OAuth2Utils.TOKEN_REVOKE_URI); - revokeUrl.put("token", revokeToken); + GenericData genericData = new GenericData(); + genericData.put("token", revokeToken); + UrlEncodedContent content = new UrlEncodedContent(genericData); + HttpRequestFactory requestFactory = transportFactory.create().createRequestFactory(); - HttpRequest tokenRequest = requestFactory.buildGetRequest(revokeUrl); + HttpRequest tokenRequest = requestFactory.buildPostRequest(revokeUrl, content); tokenRequest.execute(); if (deleteTokenException != null) { diff --git a/oauth2_http/javatests/com/google/auth/oauth2/MockTokenServerTransport.java b/oauth2_http/javatests/com/google/auth/oauth2/MockTokenServerTransport.java index add74834a..297b497b4 100644 --- a/oauth2_http/javatests/com/google/auth/oauth2/MockTokenServerTransport.java +++ b/oauth2_http/javatests/com/google/auth/oauth2/MockTokenServerTransport.java @@ -257,7 +257,7 @@ public LowLevelHttpResponse execute() throws IOException { return new MockLowLevelHttpRequest(url) { @Override public LowLevelHttpResponse execute() throws IOException { - Map parameters = TestUtils.parseQuery(query); + Map parameters = TestUtils.parseQuery(this.getContentAsString()); String token = parameters.get("token"); if (token == null) { throw new IOException("Token to revoke not found.");