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();
 }

Reply via email to