danhuawang opened a new issue, #10886:
URL: https://github.com/apache/gravitino/issues/10886

   ### Version
   
   main branch
   
   ### Describe what's wrong
   
   I use Trino to access a remote IRC catalog
   
   ```
    trino --server http://34.138.225.171:8080 --debug
   trino> use remote_irc.mydb_s3;
   Query 20260428_112505_00002_r6jbg failed: Cannot obtain metadata
   io.trino.spi.TrinoException: Cannot obtain metadata
        at 
io.trino.plugin.iceberg.IcebergConnector.getMetadata(IcebergConnector.java:139)
        at 
io.trino.metadata.CatalogTransaction.getConnectorMetadata(CatalogTransaction.java:71)
        at 
io.trino.metadata.CatalogMetadata.getMetadata(CatalogMetadata.java:87)
        at 
io.trino.metadata.MetadataManager$QueryCatalogs.registerCatalog(MetadataManager.java:2922)
        at 
io.trino.metadata.MetadataManager.registerCatalogForQuery(MetadataManager.java:2895)
        at 
io.trino.metadata.MetadataManager.lambda$getOptionalCatalogMetadata$0(MetadataManager.java:2850)
        at java.base/java.util.Optional.ifPresent(Optional.java:178)
        at 
io.trino.metadata.MetadataManager.getOptionalCatalogMetadata(MetadataManager.java:2850)
        at 
io.trino.metadata.MetadataManager.schemaExists(MetadataManager.java:246)
        at 
io.trino.tracing.TracingMetadata.schemaExists(TracingMetadata.java:172)
        at io.trino.execution.UseTask.execute(UseTask.java:85)
        at io.trino.execution.UseTask.execute(UseTask.java:41)
        at 
io.trino.execution.DataDefinitionExecution.start(DataDefinitionExecution.java:152)
        at 
io.trino.execution.SqlQueryManager.createQuery(SqlQueryManager.java:284)
        at 
io.trino.dispatcher.LocalDispatchQuery.startExecution(LocalDispatchQuery.java:150)
        at 
io.trino.dispatcher.LocalDispatchQuery.lambda$waitForMinimumWorkers$1(LocalDispatchQuery.java:134)
        at 
io.airlift.concurrent.MoreFutures.lambda$addSuccessCallback$0(MoreFutures.java:570)
        at io.airlift.concurrent.MoreFutures$3.onSuccess(MoreFutures.java:545)
        at 
com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)
        at io.trino.$gen.Trino_478____20260428_111746_2.run(Unknown Source)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
        at java.base/java.lang.Thread.run(Thread.java:1474)
   Caused by: org.apache.iceberg.exceptions.NotAuthorizedException: Not 
authorized: Not authorized: {
   "servlet":"org.glassfish.jersey.servlet.ServletContainer-45cd7bc5",
   "message":"The provided credentials did not support",
   "url":"/iceberg/v1/config",
   "status":"401"
   }
        at 
org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.accept(ErrorHandlers.java:236)
        at 
org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.accept(ErrorHandlers.java:214)
        at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:240)
        at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:336)
        at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:297)
        at org.apache.iceberg.rest.BaseHTTPClient.get(BaseHTTPClient.java:77)
        at 
org.apache.iceberg.rest.RESTSessionCatalog.fetchConfig(RESTSessionCatalog.java:1023)
        at 
org.apache.iceberg.rest.RESTSessionCatalog.initialize(RESTSessionCatalog.java:205)
        at 
io.trino.plugin.iceberg.catalog.rest.TrinoIcebergRestCatalogFactory.create(TrinoIcebergRestCatalogFactory.java:145)
        at 
io.trino.plugin.iceberg.IcebergMetadataFactory.create(IcebergMetadataFactory.java:97)
        at 
io.trino.plugin.iceberg.IcebergTransactionManager$MemoizedMetadata.get(IcebergTransactionManager.java:90)
        at 
io.trino.plugin.iceberg.IcebergTransactionManager.get(IcebergTransactionManager.java:56)
        at 
io.trino.plugin.iceberg.IcebergConnector.getMetadata(IcebergConnector.java:135)
        ... 22 more
   
   ```
   
   ### Error message and/or stacktrace
   
   ```
   2026-04-28 11:28:32.232 INFO [iceberg-rest-32] 
[org.apache.gravitino.iceberg.service.IcebergExceptionMapper.toRESTResponse(IcebergExceptionMapper.java:86)]
 - Iceberg REST server error maybe caused by user request, response http 
status: 401, exception: class 
org.apache.iceberg.exceptions.NotAuthorizedException, exception message: Not 
authorized: {
   "servlet":"org.glassfish.jersey.servlet.ServletContainer-45cd7bc5",
   "message":"The provided credentials did not support",
   "url":"/iceberg/v1/config",
   "status":"401"
   }
   2026-04-28 11:28:32.283 INFO [iceberg-rest-39] 
[org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadCatalogBackend(IcebergCatalogUtil.java:153)]
 - Load catalog backend of REST
   2026-04-28 11:28:32.330 INFO [iceberg-rest-39] 
[org.apache.iceberg.rest.auth.AuthManagers.loadAuthManager(AuthManagers.java:108)]
 - Loading AuthManager implementation: 
org.apache.iceberg.rest.auth.NoopAuthManager
   2026-04-28 11:28:32.338 WARN [iceberg-rest-39] 
[org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.parseResponse(ErrorHandlers.java:222)]
 - Unable to parse error response
   java.lang.IllegalArgumentException: Cannot parse missing field: error
        at 
org.apache.iceberg.relocated.com.google.common.base.Preconditions.checkArgument(Preconditions.java:141)
 ~[iceberg-bundled-guava-1.10.1.jar:?]
        at 
org.apache.iceberg.rest.responses.ErrorResponseParser.fromJson(ErrorResponseParser.java:79)
 ~[iceberg-core-1.10.1.jar:?]
        at org.apache.iceberg.util.JsonUtil.parse(JsonUtil.java:104) 
~[iceberg-core-1.10.1.jar:?]
        at 
org.apache.iceberg.rest.responses.ErrorResponseParser.fromJson(ErrorResponseParser.java:71)
 ~[iceberg-core-1.10.1.jar:?]
        at 
org.apache.iceberg.rest.ErrorHandlers$DefaultErrorHandler.parseResponse(ErrorHandlers.java:220)
 ~[iceberg-core-1.10.1.jar:?]
        at org.apache.iceberg.rest.HTTPClient.throwFailure(HTTPClient.java:210) 
~[iceberg-core-1.10.1.jar:?]
        at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:336) 
~[iceberg-core-1.10.1.jar:?]
        at org.apache.iceberg.rest.HTTPClient.execute(HTTPClient.java:297) 
~[iceberg-core-1.10.1.jar:?]
        at org.apache.iceberg.rest.BaseHTTPClient.get(BaseHTTPClient.java:77) 
~[iceberg-core-1.10.1.jar:?]
        at 
org.apache.iceberg.rest.RESTSessionCatalog.fetchConfig(RESTSessionCatalog.java:1023)
 ~[iceberg-core-1.10.1.jar:?]
        at 
org.apache.iceberg.rest.RESTSessionCatalog.initialize(RESTSessionCatalog.java:205)
 ~[iceberg-core-1.10.1.jar:?]
        at org.apache.iceberg.rest.RESTCatalog.initialize(RESTCatalog.java:82) 
~[iceberg-core-1.10.1.jar:?]
        at 
org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadRestCatalog(IcebergCatalogUtil.java:130)
 ~[gravitino-iceberg-common-1.2.0.jar:?]
        at 
org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadCatalogBackend(IcebergCatalogUtil.java:162)
 ~[gravitino-iceberg-common-1.2.0.jar:?]
        at 
org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper.<init>(IcebergCatalogWrapper.java:98)
 ~[gravitino-iceberg-common-1.2.0.jar:?]
        at 
org.apache.gravitino.iceberg.service.CatalogWrapperForREST.<init>(CatalogWrapperForREST.java:100)
 ~[gravitino-iceberg-rest-server-1.2.0.jar:?]
        at 
org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager.createCatalogWrapper(IcebergCatalogWrapperManager.java:130)
 ~[gravitino-iceberg-rest-server-1.2.0.jar:?]
        at 
org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager.createCatalogWrapper(IcebergCatalogWrapperManager.java:123)
 ~[gravitino-iceberg-rest-server-1.2.0.jar:?]
        at 
org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager.lambda$getCatalogWrapper$2(IcebergCatalogWrapperManager.java:102)
 ~[gravitino-iceberg-rest-server-1.2.0.jar:?]
        at 
com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2406)
 ~[caffeine-2.9.3.jar:?]
        at 
java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
 ~[?:?]
        at 
com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2404)
 ~[caffeine-2.9.3.jar:?]
        at 
com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2387)
 ~[caffeine-2.9.3.jar:?]
        at 
com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108)
 ~[caffeine-2.9.3.jar:?]
        at 
com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62)
 ~[caffeine-2.9.3.jar:?]
        at 
org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager.getCatalogWrapper(IcebergCatalogWrapperManager.java:102)
 ~[gravitino-iceberg-rest-server-1.2.0.jar:?]
        at 
org.apache.gravitino.iceberg.service.rest.IcebergConfigOperations.getCatalogWrapper(IcebergConfigOperations.java:141)
 ~[gravitino-iceberg-rest-server-1.2.0.jar:?]
        at 
org.apache.gravitino.iceberg.service.rest.IcebergConfigOperations.supportsViewOperations(IcebergConfigOperations.java:136)
 ~[gravitino-iceberg-rest-server-1.2.0.jar:?]
        at 
org.apache.gravitino.iceberg.service.rest.IcebergConfigOperations.getConfig(IcebergConfigOperations.java:103)
 ~[gravitino-iceberg-rest-server-1.2.0.jar:?]
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:?]
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
 ~[?:?]
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:?]
        at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
        at 
org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
 ~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
 ~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
 ~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)
 ~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
 ~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
 ~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
 ~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
 ~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256) 
~[jersey-server-2.41.jar:?]
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) 
~[jersey-common-2.41.jar:?]
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) 
~[jersey-common-2.41.jar:?]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:292) 
~[jersey-common-2.41.jar:?]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:274) 
~[jersey-common-2.41.jar:?]
        at org.glassfish.jersey.internal.Errors.process(Errors.java:244) 
~[jersey-common-2.41.jar:?]
        at 
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
 ~[jersey-common-2.41.jar:?]
        at 
org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235) 
~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)
 ~[jersey-server-2.41.jar:?]
        at 
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394) 
~[jersey-container-servlet-core-2.41.jar:?]
        at 
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) 
~[jersey-container-servlet-core-2.41.jar:?]
        at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
 ~[jersey-container-servlet-core-2.41.jar:?]
        at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311)
 ~[jersey-container-servlet-core-2.41.jar:?]
        at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
 ~[jersey-container-servlet-core-2.41.jar:?]
        at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) 
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)
 ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.apache.gravitino.server.authentication.AuthenticationFilter.lambda$doFilter$0(AuthenticationFilter.java:89)
 ~[gravitino-server-common-1.2.0.jar:?]
        at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
 ~[?:?]
        at java.base/javax.security.auth.Subject.doAs(Subject.java:439) ~[?:?]
        at 
org.apache.gravitino.utils.PrincipalUtils.doAs(PrincipalUtils.java:44) 
~[gravitino-core-1.2.0.jar:?]
        at 
org.apache.gravitino.server.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:86)
 ~[gravitino-server-common-1.2.0.jar:?]
        at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) 
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
 ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552) 
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
 ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
 ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
 ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) 
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
 ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
 ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
 ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) 
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at org.eclipse.jetty.server.Server.handle(Server.java:516) 
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) 
~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) 
[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) 
[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) 
[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
 [jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217]
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) 
[jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217]
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) 
[jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
 [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
 [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
 [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
 [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
 [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
 [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
 [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217]
        at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
   2026-04-28 11:28:32.340 INFO [iceberg-rest-39] 
[org.apache.gravitino.iceberg.service.IcebergExceptionMapper.toRESTResponse(IcebergExceptionMapper.java:86)]
 - Iceberg REST server error maybe caused by user request, response http 
status: 401, exception: class 
org.apache.iceberg.exceptions.NotAuthorizedException, exception message: Not 
authorized: {
   "servlet":"org.glassfish.jersey.servlet.ServletContainer-45cd7bc5",
   "message":"The provided credentials did not support",
   "url":"/iceberg/v1/config",
   "status":"401"
   }
   
   ```
   
   ### How to reproduce
   
   1. Trino catalog defined as following
   ```
     remote_irc.properties: |
       connector.name=iceberg
       iceberg.catalog.type=rest
       iceberg.rest-catalog.uri=http://gravitino.irc-e2e-env1:9001/iceberg/
       iceberg.rest-catalog.prefix=catalog_2
       iceberg.rest-catalog.warehouse=catalog_2
   
       # OAuth2 client credentials flow — Trino automatically obtains and 
refreshes
       # the token using Keycloak's client_credentials grant.
       # Trino >= 435 required.
       iceberg.rest-catalog.security=OAUTH2
       
iceberg.rest-catalog.oauth2.server-uri=http://XXXXXX:8080/realms/myrealm/protocol/openid-connect/token
       iceberg.rest-catalog.oauth2.credential=postman-client:XXXXXXX
       iceberg.rest-catalog.oauth2.scope=openid profile email
   
       # Credential vending: ask IRC to vend short-lived cloud credentials
       iceberg.rest-catalog.vended-credentials-enabled=true
       fs.native-s3.enabled=true
       s3.region=us-east-1
   
   ```
   2. Gravitino IRC conf:
   ```
   gravitino.authenticators = oauth
   gravitino.authenticator.oauth.serviceAudience = account
   gravitino.authenticator.oauth.defaultSignKey = 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqmmqfSy8vH9BMKZLIjPHNTClH7yyykV/J/dfNwwicoYCBQgLOLRq59nAiJ9/WOkIq7zIXQ8iZU5XmI0bRSo3Ah7G4uF6CUbpny+n4zxwTfEEJ3dVC1Aa1g3DZbf8mN76B2ykf6z4FEbTWVBp0xMZ14YBOIuOUkN4F/x8bQNYRPl0yepLBZf6uY26f2o5+yKBcpAk7K/pGoD4v+DKpt/A8bvf4fy3JpZERsMPS/veeyIqR6f+455KLjRabBpxl5xIo8iUer5O0Ci8xbQMci4ErRRemm5n1e74Kqpz5u/TcLIPdMLXJ57fLl9t7V9BtLyRTjyooJpnl/lz+kJ+VIt1kQIDAQAB
   gravitino.authenticator.oauth.serverUri = http://XXXXX:8080
   gravitino.authenticator.oauth.tokenPath = 
/realms/myrealm/protocol/openid-connect/token
   gravitino.authenticator.oauth.provider = oidc
   gravitino.authenticator.oauth.clientId = postman-client
   gravitino.authenticator.oauth.authority = http://XXXXX:8080/realms/myrealm
   gravitino.authenticator.oauth.scope = profile email
   gravitino.authenticator.oauth.jwksUri = 
http://XXXXX:8080/realms/myrealm/protocol/openid-connect/certs
   gravitino.authenticator.oauth.tokenValidatorClass = 
org.apache.gravitino.server.authentication.JwksTokenValidator
   gravitino.authenticator.oauth.principalFields = preferred_username
   gravitino.auxService.names = iceberg-rest
   gravitino.iceberg-rest.classpath = iceberg-rest-server/libs, 
iceberg-rest-server/conf
   gravitino.iceberg-rest.host = 0.0.0.0
   gravitino.iceberg-rest.httpPort = 9001
   gravitino.iceberg-rest.catalog-backend = memory
   gravitino.iceberg-rest.warehouse = /tmp/
   gravitino.iceberg-rest.catalog-config-provider = dynamic-config-provider
   gravitino.iceberg-rest.gravitino-uri = 
   gravitino.iceberg-rest.gravitino-metalake = metalake_a
   gravitino.iceberg-rest.default-catalog-name = catalog_1
   
   ```
   3. The catalog2 property
   ```
   
{"code":0,"catalog":{"name":"catalog_2","type":"relational","provider":"lakehouse-iceberg","comment":"env1
 
catalog","properties":{"catalog-backend":"rest","s3-access-key-id":"XXXXX","s3-secret-access-key":"XXXXX","header.X-Iceberg-Access-Delegation":"vended-credentials","data-access":"vended-credentials","s3-region":"us-east-1","credential-providers":"s3-secret-key","uri":"http://34.23.68.122:9001/iceberg","in-use":"true"},"audit":{"creator":"service-account-postman-client","createTime":"2026-04-28T06:42:34.756894560Z","lastModifier":"service-account-postman-client","lastModifiedTime":"2026-04-28T11:24:33.142716931Z"}}}
   ```
   4. Trino access
   ```
   ```
    trino --server http://34.138.225.171:8080 --debug
   trino> use remote_irc.mydb_s3;
   ```
   
   ### Additional context
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to