Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@

import com.google.inject.Inject;

import java.net.URI;

public class StaticConfigurationProvider
implements OAuth2ServerConfigProvider
{
Expand All @@ -27,11 +25,11 @@ public class StaticConfigurationProvider
{
this.config = new OAuth2ServerConfig(
config.getAccessTokenIssuer(),
URI.create(config.getAuthUrl()),
URI.create(config.getTokenUrl()),
URI.create(config.getJwksUrl()),
config.getUserinfoUrl().map(URI::create),
config.getEndSessionUrl().map(URI::create));
config.getAuthUrl(),
config.getTokenUrl(),
config.getJwksUrl(),
config.getUserinfoUrl(),
config.getEndSessionUrl());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import io.airlift.configuration.ConfigDescription;
import jakarta.validation.constraints.NotNull;

import java.net.URI;
import java.util.Optional;

public class StaticOAuth2ServerConfig
Expand All @@ -29,11 +30,11 @@ public class StaticOAuth2ServerConfig
public static final String END_SESSION_URL = "http-server.authentication.oauth2.end-session-url";

private Optional<String> accessTokenIssuer = Optional.empty();
private String authUrl;
private String tokenUrl;
private String jwksUrl;
private Optional<String> userinfoUrl = Optional.empty();
private Optional<String> endSessionUrl = Optional.empty();
private URI authUrl;
private URI tokenUrl;
private URI jwksUrl;
private Optional<URI> userinfoUrl = Optional.empty();
private Optional<URI> endSessionUrl = Optional.empty();

@NotNull
public Optional<String> getAccessTokenIssuer()
Expand All @@ -50,68 +51,68 @@ public StaticOAuth2ServerConfig setAccessTokenIssuer(String accessTokenIssuer)
}

@NotNull
public String getAuthUrl()
public URI getAuthUrl()
{
return authUrl;
}

@Config(AUTH_URL)
@ConfigDescription("URL of the authorization server's authorization endpoint")
public StaticOAuth2ServerConfig setAuthUrl(String authUrl)
public StaticOAuth2ServerConfig setAuthUrl(URI authUrl)
{
this.authUrl = authUrl;
return this;
}

@NotNull
public String getTokenUrl()
public URI getTokenUrl()
{
return tokenUrl;
}

@Config(TOKEN_URL)
@ConfigDescription("URL of the authorization server's token endpoint")
public StaticOAuth2ServerConfig setTokenUrl(String tokenUrl)
public StaticOAuth2ServerConfig setTokenUrl(URI tokenUrl)
{
this.tokenUrl = tokenUrl;
return this;
}

@NotNull
public String getJwksUrl()
public URI getJwksUrl()
{
return jwksUrl;
}

@Config(JWKS_URL)
@ConfigDescription("URL of the authorization server's JWKS (JSON Web Key Set) endpoint")
public StaticOAuth2ServerConfig setJwksUrl(String jwksUrl)
public StaticOAuth2ServerConfig setJwksUrl(URI jwksUrl)
{
this.jwksUrl = jwksUrl;
return this;
}

public Optional<String> getUserinfoUrl()
public Optional<URI> getUserinfoUrl()
{
return userinfoUrl;
}

@Config(USERINFO_URL)
@ConfigDescription("URL of the userinfo endpoint")
public StaticOAuth2ServerConfig setUserinfoUrl(String userinfoUrl)
public StaticOAuth2ServerConfig setUserinfoUrl(URI userinfoUrl)
{
this.userinfoUrl = Optional.ofNullable(userinfoUrl);
return this;
}

public Optional<String> getEndSessionUrl()
public Optional<URI> getEndSessionUrl()
{
return endSessionUrl;
}

@Config(END_SESSION_URL)
@ConfigDescription("URL of the end session endpoint")
public StaticOAuth2ServerConfig setEndSessionUrl(String endSessionUrl)
public StaticOAuth2ServerConfig setEndSessionUrl(URI endSessionUrl)
{
this.endSessionUrl = Optional.ofNullable(endSessionUrl);
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;

import java.net.URI;
import java.util.Optional;

@DefunctConfig({
Expand All @@ -33,9 +34,9 @@
public class GlueHiveMetastoreConfig
{
private Optional<String> glueRegion = Optional.empty();
private Optional<String> glueEndpointUrl = Optional.empty();
private Optional<URI> glueEndpointUrl = Optional.empty();
private Optional<String> glueStsRegion = Optional.empty();
private Optional<String> glueStsEndpointUrl = Optional.empty();
private Optional<URI> glueStsEndpointUrl = Optional.empty();
private boolean pinGlueClientToCurrentRegion;
private int maxGlueErrorRetries = 10;
private int maxGlueConnections = 30;
Expand Down Expand Up @@ -64,14 +65,14 @@ public GlueHiveMetastoreConfig setGlueRegion(String region)
return this;
}

public Optional<String> getGlueEndpointUrl()
public Optional<URI> getGlueEndpointUrl()
{
return glueEndpointUrl;
}

@Config("hive.metastore.glue.endpoint-url")
@ConfigDescription("Glue API endpoint URL")
public GlueHiveMetastoreConfig setGlueEndpointUrl(String glueEndpointUrl)
public GlueHiveMetastoreConfig setGlueEndpointUrl(URI glueEndpointUrl)
{
this.glueEndpointUrl = Optional.ofNullable(glueEndpointUrl);
return this;
Expand All @@ -90,14 +91,14 @@ public GlueHiveMetastoreConfig setGlueStsRegion(String glueStsRegion)
return this;
}

public Optional<String> getGlueStsEndpointUrl()
public Optional<URI> getGlueStsEndpointUrl()
{
return glueStsEndpointUrl;
}

@Config("hive.metastore.glue.sts.endpoint")
@ConfigDescription("AWS STS endpoint for Glue authentication")
public GlueHiveMetastoreConfig setGlueStsEndpointUrl(String glueStsEndpointUrl)
public GlueHiveMetastoreConfig setGlueStsEndpointUrl(URI glueStsEndpointUrl)
{
this.glueStsEndpointUrl = Optional.ofNullable(glueStsEndpointUrl);
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
import software.amazon.awssdk.services.sts.auth.StsAssumeRoleCredentialsProvider;
import software.amazon.awssdk.services.sts.auth.StsWebIdentityTokenFileCredentialsProvider;

import java.net.URI;
import java.util.EnumSet;
import java.util.Optional;
import java.util.Set;
Expand Down Expand Up @@ -186,7 +185,7 @@ else if (config.getIamRole().isPresent()) {
if (config.getGlueEndpointUrl().isPresent()) {
checkArgument(config.getGlueRegion().isPresent(), "Glue region must be set when Glue endpoint URL is set");
glue.region(Region.of(config.getGlueRegion().get()));
glue.endpointOverride(URI.create(config.getGlueEndpointUrl().get()));
glue.endpointOverride(config.getGlueEndpointUrl().get());
}
else if (config.getGlueRegion().isPresent()) {
glue.region(Region.of(config.getGlueRegion().get()));
Expand Down Expand Up @@ -215,7 +214,7 @@ private static StsClient getStsClient(GlueHiveMetastoreConfig config, Optional<S
staticCredentialsProvider.ifPresent(sts::credentialsProvider);

if (config.getGlueStsEndpointUrl().isPresent() && config.getGlueStsRegion().isPresent()) {
sts.endpointOverride(URI.create(config.getGlueStsEndpointUrl().get()))
sts.endpointOverride(config.getGlueStsEndpointUrl().get())
.region(Region.of(config.getGlueStsRegion().get()));
}
else if (config.getGlueStsRegion().isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import com.google.common.collect.ImmutableMap;
import org.junit.jupiter.api.Test;

import java.net.URI;
import java.util.Map;

import static io.airlift.configuration.testing.ConfigAssertions.assertFullMapping;
Expand Down Expand Up @@ -74,9 +75,9 @@ void testExplicitPropertyMapping()

GlueHiveMetastoreConfig expected = new GlueHiveMetastoreConfig()
.setGlueRegion("us-east-1")
.setGlueEndpointUrl("http://foo.bar")
.setGlueEndpointUrl(URI.create("http://foo.bar"))
.setGlueStsRegion("us-east-3")
.setGlueStsEndpointUrl("http://sts.foo.bar")
.setGlueStsEndpointUrl(URI.create("http://sts.foo.bar"))
.setPinGlueClientToCurrentRegion(true)
.setMaxGlueConnections(10)
.setMaxGlueErrorRetries(20)
Expand Down
Loading