This is an automated email from the ASF dual-hosted git repository.
yufei pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new f1d46c56 DefaultContextResolver should respect the defaultRealm
configuration (#309)
f1d46c56 is described below
commit f1d46c56c20027ff212e19a732aee88fd997fa36
Author: Eric Maynard <[email protected]>
AuthorDate: Fri Oct 18 21:03:54 2024 -0400
DefaultContextResolver should respect the defaultRealm configuration (#309)
---
.../service/config/PolarisApplicationConfig.java | 2 ++
.../service/context/DefaultContextResolver.java | 18 +++++++++++++-----
.../polaris/service/context/RealmContextResolver.java | 5 +++++
3 files changed, 20 insertions(+), 5 deletions(-)
diff --git
a/polaris-service/src/main/java/org/apache/polaris/service/config/PolarisApplicationConfig.java
b/polaris-service/src/main/java/org/apache/polaris/service/config/PolarisApplicationConfig.java
index 065b6d8f..f3a08934 100644
---
a/polaris-service/src/main/java/org/apache/polaris/service/config/PolarisApplicationConfig.java
+++
b/polaris-service/src/main/java/org/apache/polaris/service/config/PolarisApplicationConfig.java
@@ -102,6 +102,7 @@ public class PolarisApplicationConfig extends Configuration
{
}
public RealmContextResolver getRealmContextResolver() {
+ realmContextResolver.setDefaultRealm(this.defaultRealm);
return realmContextResolver;
}
@@ -136,6 +137,7 @@ public class PolarisApplicationConfig extends Configuration
{
@JsonProperty("defaultRealm")
public void setDefaultRealm(String defaultRealm) {
this.defaultRealm = defaultRealm;
+ realmContextResolver.setDefaultRealm(defaultRealm);
}
@JsonProperty("cors")
diff --git
a/polaris-service/src/main/java/org/apache/polaris/service/context/DefaultContextResolver.java
b/polaris-service/src/main/java/org/apache/polaris/service/context/DefaultContextResolver.java
index b171a598..ed0aa708 100644
---
a/polaris-service/src/main/java/org/apache/polaris/service/context/DefaultContextResolver.java
+++
b/polaris-service/src/main/java/org/apache/polaris/service/context/DefaultContextResolver.java
@@ -49,13 +49,13 @@ public class DefaultContextResolver
private static final Logger LOGGER =
LoggerFactory.getLogger(DefaultContextResolver.class);
public static final String REALM_PROPERTY_KEY = "realm";
- public static final String REALM_PROPERTY_DEFAULT_VALUE = "default-realm";
public static final String PRINCIPAL_PROPERTY_KEY = "principal";
public static final String PRINCIPAL_PROPERTY_DEFAULT_VALUE =
"default-principal";
private RealmEntityManagerFactory entityManagerFactory;
private PolarisConfigurationStore configurationStore;
+ private String defaultRealm = "default-realm";
/**
* During CallContext resolution that might depend on RealmContext, the
{@code
@@ -92,14 +92,22 @@ public class DefaultContextResolver
if (!parsedProperties.containsKey(REALM_PROPERTY_KEY)) {
LOGGER.warn(
- "Failed to parse {} from headers; using {}",
- REALM_PROPERTY_KEY,
- REALM_PROPERTY_DEFAULT_VALUE);
- parsedProperties.put(REALM_PROPERTY_KEY, REALM_PROPERTY_DEFAULT_VALUE);
+ "Failed to parse {} from headers; using {}", REALM_PROPERTY_KEY,
getDefaultRealm());
+ parsedProperties.put(REALM_PROPERTY_KEY, getDefaultRealm());
}
return () -> parsedProperties.get(REALM_PROPERTY_KEY);
}
+ @Override
+ public void setDefaultRealm(String defaultRealm) {
+ this.defaultRealm = defaultRealm;
+ }
+
+ @Override
+ public String getDefaultRealm() {
+ return this.defaultRealm;
+ }
+
@Override
public CallContext resolveCallContext(
final RealmContext realmContext,
diff --git
a/polaris-service/src/main/java/org/apache/polaris/service/context/RealmContextResolver.java
b/polaris-service/src/main/java/org/apache/polaris/service/context/RealmContextResolver.java
index 14759431..43c44801 100644
---
a/polaris-service/src/main/java/org/apache/polaris/service/context/RealmContextResolver.java
+++
b/polaris-service/src/main/java/org/apache/polaris/service/context/RealmContextResolver.java
@@ -26,10 +26,15 @@ import
org.apache.polaris.service.config.HasEntityManagerFactory;
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY,
property = "type")
public interface RealmContextResolver extends Discoverable,
HasEntityManagerFactory {
+
RealmContext resolveRealmContext(
String requestURL,
String method,
String path,
Map<String, String> queryParams,
Map<String, String> headers);
+
+ void setDefaultRealm(String defaultRealm);
+
+ String getDefaultRealm();
}