You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For the handshake between a Flight SQL client and a Flight SQL server, the Arrow Rust implementation uses Base64 standard encoding with padding, while the Arrow Go implementation uses Base64 standard encoding without padding. Since these two are incompatible, our Flight SQL server cannot authenticate Go and Rust clients in a unified manner.
The text was updated successfully, but these errors were encountered:
Well, we have found a way for consistent decoding:
let my_base64 = GeneralPurpose::new(&alphabet::STANDARD,GeneralPurposeConfig::new().with_decode_padding_mode(DecodePaddingMode::Indifferent),);
We have to construct our own general-purpose decoder in the server side and set the decode padding mode to Indifferent so that the base64 decoder would allow the encoded string being padded or not padded.
But I think this is still a issue since not all FlightSQL server implementations would notice the inconsistent base64 encoding in the client side. And this inconsistency would make them hard to handle cross-language requests.
For the handshake between a Flight SQL client and a Flight SQL server, the Arrow Rust implementation uses Base64 standard encoding with padding, while the Arrow Go implementation uses Base64 standard encoding without padding. Since these two are incompatible, our Flight SQL server cannot authenticate Go and Rust clients in a unified manner.
The text was updated successfully, but these errors were encountered: