You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by si...@apache.org on 2020/09/12 06:05:44 UTC
[pulsar] branch master updated: Fix the wrong issuer url
concatenate (#7980)
This is an automated email from the ASF dual-hosted git repository.
sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 9285f8c Fix the wrong issuer url concatenate (#7980)
9285f8c is described below
commit 9285f8c7ae4ff17613010dfab24d826c129a8e2d
Author: Yong Zhang <zh...@gmail.com>
AuthorDate: Sat Sep 12 14:05:28 2020 +0800
Fix the wrong issuer url concatenate (#7980)
* Fix the wrong issuer url concate
---
Fixes #7952
*Motivation*
If the issuer url has an extra path, the extra path will be stripped
when retrieving the openid configuration to get the token endpoint.
* Fix the tests
---
.../api/TokenOauth2AuthenticatedProducerConsumerTest.java | 2 +-
.../impl/auth/oauth2/protocol/DefaultMetadataResolver.java | 3 ++-
.../client/impl/auth/oauth2/AuthenticationOAuth2Test.java | 11 +++++++++++
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/TokenOauth2AuthenticatedProducerConsumerTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/TokenOauth2AuthenticatedProducerConsumerTest.java
index b54d8c9..25b3c00 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/TokenOauth2AuthenticatedProducerConsumerTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/TokenOauth2AuthenticatedProducerConsumerTest.java
@@ -88,7 +88,7 @@ public class TokenOauth2AuthenticatedProducerConsumerTest extends ProducerConsum
// AuthenticationOAuth2
Authentication authentication = AuthenticationFactoryOAuth2.clientCredentials(
- new URL("https://dev-kt-aa9ne.us.auth0.com/oauth/token"),
+ new URL("https://dev-kt-aa9ne.us.auth0.com"),
new URL("file://" + path.toString()), // key file path
"https://dev-kt-aa9ne.us.auth0.com/api/v2/"
);
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/oauth2/protocol/DefaultMetadataResolver.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/oauth2/protocol/DefaultMetadataResolver.java
index d16ce8b..2c09113 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/oauth2/protocol/DefaultMetadataResolver.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/oauth2/protocol/DefaultMetadataResolver.java
@@ -23,6 +23,7 @@ import com.fasterxml.jackson.databind.ObjectReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
+import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
import java.time.Duration;
@@ -97,7 +98,7 @@ public class DefaultMetadataResolver implements MetadataResolver {
*/
public static URL getWellKnownMetadataUrl(URL issuerUrl) {
try {
- return new URL(issuerUrl, "/.well-known/openid-configuration");
+ return URI.create(issuerUrl.toExternalForm() + "/.well-known/openid-configuration").normalize().toURL();
} catch (MalformedURLException e) {
throw new IllegalArgumentException(e);
}
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/auth/oauth2/AuthenticationOAuth2Test.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/auth/oauth2/AuthenticationOAuth2Test.java
index f45c2c0..ac14dd2 100644
--- a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/auth/oauth2/AuthenticationOAuth2Test.java
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/auth/oauth2/AuthenticationOAuth2Test.java
@@ -26,12 +26,17 @@ import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
import java.time.Duration;
import java.time.Instant;
import java.time.ZoneOffset;
import java.util.HashMap;
import java.util.Map;
import org.apache.pulsar.client.api.AuthenticationDataProvider;
+import org.apache.pulsar.client.impl.auth.oauth2.protocol.DefaultMetadataResolver;
import org.apache.pulsar.client.impl.auth.oauth2.protocol.TokenResult;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -115,6 +120,12 @@ public class AuthenticationOAuth2Test {
}
@Test
+ public void testMetadataResolver() throws MalformedURLException {
+ URL url = DefaultMetadataResolver.getWellKnownMetadataUrl(URI.create("http://localhost/path/oauth").toURL());
+ assertEquals("http://localhost/path/oauth/.well-known/openid-configuration", url.toString());
+ }
+
+ @Test
public void testClose() throws Exception {
this.auth.close();
verify(this.flow).close();