diff --git a/client/trino-client/src/main/java/io/trino/client/uri/TrinoUri.java b/client/trino-client/src/main/java/io/trino/client/uri/TrinoUri.java index 411949f9f68a..9474754d03ed 100644 --- a/client/trino-client/src/main/java/io/trino/client/uri/TrinoUri.java +++ b/client/trino-client/src/main/java/io/trino/client/uri/TrinoUri.java @@ -99,7 +99,6 @@ import static io.trino.client.uri.LoggingLevel.NONE; import static java.lang.String.CASE_INSENSITIVE_ORDER; import static java.lang.String.format; -import static java.lang.System.getProperty; import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.joining; @@ -191,9 +190,9 @@ public String getRequiredUser() return resolveRequired(USER); } - public String getUser() + public Optional getUser() { - return resolveWithDefault(USER, getProperty("user.name")); + return resolveOptional(USER); } public boolean hasPassword() @@ -486,7 +485,7 @@ public ClientSession.Builder toClientSessionBuilder() { return ClientSession.builder() .server(getHttpUri()) - .principal(Optional.of(getUser())) + .principal(getUser()) .path(getPath().orElse(ImmutableList.of())) .clientRequestTimeout(getTimeout()) .user(getSessionUser()) diff --git a/client/trino-client/src/test/java/io/trino/client/uri/TestTrinoUri.java b/client/trino-client/src/test/java/io/trino/client/uri/TestTrinoUri.java index 6e6873e07283..bd616db08435 100644 --- a/client/trino-client/src/test/java/io/trino/client/uri/TestTrinoUri.java +++ b/client/trino-client/src/test/java/io/trino/client/uri/TestTrinoUri.java @@ -201,6 +201,15 @@ public void testInvalidUrls() "Connection property assumeLiteralUnderscoreInMetadataCallsForNonConformingClients cannot be set if assumeLiteralNamesInMetadataCallsForNonConformingClients is enabled"); } + @Test + public void testUser() + { + assertThat(TrinoUri.create("trino://localhost:8080", new Properties()).getUser()).isEmpty(); + assertThat(TrinoUri.create("trino://localhost:8080", new Properties()).getProperties().get("user")).isNull(); + assertThat(TrinoUri.create("trino://localhost:8080?user=trino", new Properties()).getUser()).hasValue("trino"); + assertThat(TrinoUri.create("trino://localhost:8080?user=trino", new Properties()).getProperties().get("user")).isEqualTo("trino"); + } + @Test public void testEmptyUser() { diff --git a/client/trino-jdbc/src/main/java/io/trino/jdbc/TrinoConnection.java b/client/trino-jdbc/src/main/java/io/trino/jdbc/TrinoConnection.java index 1925bdadd867..b40b2c0aacb8 100644 --- a/client/trino-jdbc/src/main/java/io/trino/jdbc/TrinoConnection.java +++ b/client/trino-jdbc/src/main/java/io/trino/jdbc/TrinoConnection.java @@ -125,7 +125,7 @@ public class TrinoConnection this.httpUri = uri.getHttpUri(); uri.getSchema().ifPresent(schema::set); uri.getCatalog().ifPresent(catalog::set); - this.user = Optional.ofNullable(uri.getUser()); + this.user = uri.getUser(); this.sessionUser.set(uri.getSessionUser()); this.applicationNamePrefix = uri.getApplicationNamePrefix(); this.source = uri.getSource();