我们有一个.NET应用程序使用Thrift与HBase交谈。 Thrift服务器配置为通过身份验证(Kerberos)。我们有一个密钥表。
我们如何从.NET应用程序实现身份验证?我见过的所有例子都是用Java编写的。有没有人从.NET做过这个?
答案 0 :(得分:1)
有一个RPC框架使用名为“thrifty”的标准thrift协议,它与使用thrift IDL定义服务的效果相同,也就是说,thrify可以与使用thrift IDL的代码兼容,所以它是跨平台的。
您可以使用其客户端
[ThriftStruct]
public class LogEntry
{
[ThriftConstructor]
public LogEntry([ThriftField(1)]String category, [ThriftField(2)]String message)
{
this.Category = category;
this.Message = message;
}
[ThriftField(1)]
public String Category { get; }
[ThriftField(2)]
public String Message { get; }
}
ThriftSerializer s = new ThriftSerializer(ThriftSerializer.SerializeProtocol.Binary);
byte[] s = s.Serialize<LogEntry>();
s.Deserialize<LogEntry>(s);
[ThriftService("scribe")]
public interface IScribe
{
[ThriftMethod("getMessages")]
List<LogEntry> GetMessages();
[ThriftMethod]
ResultCode Log(List<LogEntry> messages);
}
public class Scribe : IScribe
{
public List<LogEntry> GetMessages()
{
return new List<LogEntry>
{
new LogEntry { Category = "c1", Message = Guid.NewGuid().ToString() },
new LogEntry { Category = "c2", Message = Guid.NewGuid().ToString() },
new LogEntry { Category = "c3", Message = Guid.NewGuid().ToString() }
};
}
public ResultCode Log(List<LogEntry> messages)
{
return ResultCode.TRY_LATER;
}
}