Hi, I am from Teradata and I am working on a POC related to Arrow Flight. Basically, I wanted to send metadata request from the client to Arrow Flight Server which fetches the result from Teradata Database (for example table types) and return it to the client. I want to enable username/password authentication. Please see attached code on server and client side.
I found an issue when I run the code. Here is the output on server side: Flight SQL Server listening at grpc+tls://localhost:3333 awaiting termination ... Metadata(content-type=application/grpc,user-agent=grpc-java-netty/1.63.0,grpc-accept-encoding=gzip,authorization=Basic YXJyb3c6Y2VydA==) authenticating user 'arrow' using basic authentication Metadata(content-type=application/grpc,user-agent=grpc-java-netty/1.63.0,grpc-accept-encoding=gzip) inside method getFlightInfoTableTypes!! Metadata(content-type=application/grpc,user-agent=grpc-java-netty/1.63.0,grpc-accept-encoding=gzip,authorization=Basic YXJyb3c6Y2VydA==) authenticating user 'arrow' using basic authentication Metadata(content-type=application/grpc,user-agent=grpc-java-netty/1.63.0,grpc-accept-encoding=gzip) inside method getStreamTableTypes!! I printed out incomingHeaders.toString() in authenticate method in my ArrowFlightAuthValidate.java. You can see before going into getFlightInfoTableTypes method, it calls authenticate() two times. The first time comes with authorization info in the header, but not the second time. Same for after calling getFlightInfoTableTypes. I have used latest version 17.0.0 for flight-core, arrow-jdbc and flight-sql on server side and latest flight-sql-jdbc-driver (17.0.0) on client side. Any help would be greatly appreciated. Thanks. -Chuan