如图,Roles页面显示There are currently no roles defined

但是在Browser选项页是有roles的

从后台HTTP请求来看,list_sentry_privileges_by_authorizable接口是有数据

而list_sentry_roles_by_group接口没有数据

解决办法是将当前用户拉入sentry的admin组,比如hive组,sysadmins组等都可以。

再次打开security browser的Roles选项页,已经出现了正确的roles,后台HTTP接口list_sentry_roles_by_group也有了正确的数据。

总结,只要用户在sentry.service.admin.group里的都可以正常访问Roles页面。

源码分析
https://github.com/cloudera/hue/blob/cdh6.0.1-release/apps/security/src/security/api/hive.py


后台HTTP接口传入的groupName默认是空的,所以进入else语句,去判断用户所在HUE数据库中的组(request.user.groups)是不是也在sentry的admin组里,如果存在的话,就返回*
https://github.com/cloudera/hue/blob/cdh6.0.1-release/desktop/libs/libsentry/src/libsentry/sentry_site.py
get_sentry_server_admin_groups这个函数实质上是去读取sentry-site.xml里面的sentry.service.admin.group值

https://github.com/cloudera/hue/blob/cdh6.0.1-release/desktop/libs/libsentry/src/libsentry/api.py
list_sentry_roles_by_group这个函数就很普通,根据传入groupName进行role-group的字典拼装


821

被折叠的 条评论
为什么被折叠?



