hbase笔记

UserGroupInformation#getCurrentUser函数

该函数比较难理解之处在于Server端调用时,通过

AccessControlContext context = AccessController.getContext();

获取一个AccessControlContext对象,该对象包含当前线程中所有的Subject实体,由于服务器端会启动多个handler线程并行处理客户端请求,因此每个handler内部的AccessControlContext均是不同的,它们通常与对应的客户端信息相同。很多人阅读代码时不明白AccessControlContext是怎样自动填充的?这个对象的内容在RPC 层调用UserGroupInformation#doAs函数时会自动填充,具体可了解JDK中对AccessControlContext的说明文档。

posted @ 2017-07-19 15:07  三美元  阅读(105)  评论(0编辑  收藏  举报