adutra commented on code in PR #10753:
URL: https://github.com/apache/iceberg/pull/10753#discussion_r1828246578
##########
core/src/main/java/org/apache/iceberg/rest/RESTSessionCatalog.java:
##########
@@ -378,7 +289,8 @@ public List<TableIdentifier> listTables(SessionContext
context, Namespace ns) {
paths.tables(ns),
queryParams,
ListTablesResponse.class,
- headers(context),
+ ImmutableMap.of(),
+ authManager.contextualSession(context, catalogAuth),
Review Comment:
I had initially something that resembles your suggestion. I discarded it for
two reasons:
1. `RESTClient` implementations are stateful (and closeable); "wrapping" a
REST client with the auth session may be error-prone: should implementors
return a new instance, or the same one? Should callers close the wrapped client
or not?
2. Wrapping makes the code slightly less testable: you don't "see" the
authentication data anymore by simply inspecting the calls that the catalog
made to the `RESTClient` API.
But I agree that the wrapping approach is less invasive, so let's give it
another try.
I think that to address concern #1 above, we can work around misbehaving
implementations with good documentation.
To address #2 above, we'd certainly need to revisit tests a little bit and
introduce a better way to make verifications, ideally capturing which requests
were made and what was the internal state of the REST client, by the time a
given request was executed.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]