You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bu...@apache.org on 2019/06/12 16:18:23 UTC

[cxf] branch master updated: Avoid duplicate query parameters at OAuthClientUtils#getAuthorizationURI

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

buhhunyx pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new 4446d78  Avoid duplicate query parameters at OAuthClientUtils#getAuthorizationURI
4446d78 is described below

commit 4446d78a3977210305cf98d90d72b92b636abf90
Author: Alexey Markevich <bu...@gmail.com>
AuthorDate: Tue Jun 11 15:32:35 2019 +0300

    Avoid duplicate query parameters at OAuthClientUtils#getAuthorizationURI
---
 .../security/oauth2/client/OAuthClientUtils.java   |  6 ------
 .../oauth2/client/OAuthClientUtilsTest.java        | 24 ++++++++++++++++++++++
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtils.java b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtils.java
index 850f1a8..81b92f0 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtils.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/main/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtils.java
@@ -73,12 +73,6 @@ public final class OAuthClientUtils {
                                                    redirectUri,
                                                    state,
                                                    scope);
-        if (redirectUri != null) {
-            ub.queryParam(OAuthConstants.REDIRECT_URI, redirectUri);
-        }
-        if (state != null) {
-            ub.queryParam(OAuthConstants.STATE, state);
-        }
         return ub.build();
     }
 
diff --git a/rt/rs/security/oauth-parent/oauth2/src/test/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtilsTest.java b/rt/rs/security/oauth-parent/oauth2/src/test/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtilsTest.java
index c0622bb..a35ae24 100644
--- a/rt/rs/security/oauth-parent/oauth2/src/test/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtilsTest.java
+++ b/rt/rs/security/oauth-parent/oauth2/src/test/java/org/apache/cxf/rs/security/oauth2/client/OAuthClientUtilsTest.java
@@ -19,8 +19,11 @@
 package org.apache.cxf.rs.security.oauth2.client;
 
 import java.io.ByteArrayInputStream;
+import java.net.URI;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import javax.ws.rs.core.Form;
 import javax.ws.rs.core.MediaType;
@@ -40,6 +43,7 @@ import static org.easymock.EasyMock.mock;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 public class OAuthClientUtilsTest {
@@ -97,4 +101,24 @@ public class OAuthClientUtilsTest {
         assertEquals(Long.parseLong(expiresIn), token.getExpiresIn());
     }
 
+    @Test
+    public void getAuthorizationURI() {
+        String authorizationServiceURI = "https://authorization";
+        String clientId = "clientId";
+        String redirectUri = "https://redirect";
+        String state = "unique";
+        String scope = OAuthConstants.REFRESH_TOKEN_SCOPE;
+
+        URI uri = OAuthClientUtils.getAuthorizationURI(authorizationServiceURI, clientId, redirectUri, state, scope);
+
+        assertTrue(uri.toString().startsWith(authorizationServiceURI));
+
+        Map<String, String> query = Arrays.asList(uri.getQuery().split("&")).stream().map(s -> s.split("="))
+                .collect(Collectors.toMap(a -> a[0], a -> a.length > 1 ? a[1] : ""));
+        assertEquals(clientId, query.get(OAuthConstants.CLIENT_ID));
+        assertEquals(redirectUri, query.get(OAuthConstants.REDIRECT_URI));
+        assertEquals(state, query.get(OAuthConstants.STATE));
+        assertEquals(OAuthConstants.CODE_RESPONSE_TYPE, query.get(OAuthConstants.RESPONSE_TYPE));
+    }
+
 }