I am developing, a thrift client application in c# to connect to the Hadoop HiveServer2. now problem is for setting hive.server2.authentication = NONE, when i connect to the server using SASL, i always receive “Unsupported mechanism type” error…
please let me know what is going on here…
Code C#:
public class TSaslClientTransport : TTransport
{
byte START = 0x01;
byte OK = 0x02;
byte BAD = 0x03;
byte ERROR = 0x04;
byte COMPLETE = 0x05;
protected TTransport underlyingTransport;
byte[] messageHeader = new byte[1 + 4];
public override void Open()
{
SaslPlain plain = new SaslPlain("user", "password");
byte[] initilaResponse = null;
if (plain.HasInitial)
{
initilaResponse = plain.GetResponse(new byte[0]);
}
Byte[] machinism = GetBytes("PLAIN");
messageHeader[0] = START;
encodeBigEndian(machinism.Length, messageHeader, 1);
underlyingTransport.Open();
underlyingTransport.Write(messageHeader);
underlyingTransport.Write(machinism);
underlyingTransport.Flush();
Byte by = plain.IsCompleted ? COMPLETE : OK;
messageHeader[0] = by;
encodeBigEndian(initilaResponse.Length, messageHeader, 1);
underlyingTransport.Write(messageHeader);
underlyingTransport.Write(initilaResponse);
underlyingTransport.Flush();
underlyingTransport.Flush();
var userpass = plain.GetResponse(new byte[0]);
messageHeader[0] = OK;
encodeBigEndian(userpass.Length, messageHeader, 1);
underlyingTransport.Write(messageHeader);
underlyingTransport.Write(userpass);
underlyingTransport.Flush();
}
}