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

Reply via email to