如何对.net中的thrift hbase进行身份验证?

r6l8ljro  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(282)

我们有一个.net应用程序使用thrift与hbase通信。thrift服务器配置为执行直通身份验证(kerberos)。我们有一个键盘。
如何从.net应用程序实现身份验证?我看到的所有例子都是用java编写的。有人在.net上做过这个吗?

xbp102n0

xbp102n01#

有一个rpc框架使用标准的thrift协议“thrifty”,它与使用thrift idl定义服务的效果是一样的,即thrifty可以与使用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;
    }
}

你可以试试:https://github.com/endink/thrifty

相关问题