如何在WSO2 api商店/发布者中获得特定用户角色

时间:2015-09-22 07:31:21

标签: wso2 wso2esb wso2is wso2carbon wso2-am

在我的WSO2 api商店实例中,我想进行一些修改,以便我只允许一些操作给Admin而不是普通的Publiser / Subscriber。例如,如果我想重新编码其他用户来编辑我发布的API,并且只应授予Admin角色修改任何API的权限。为此,我如何获得用户角色?

我试图从碳模块中获取角色

/modules/carbon/scripts/user/user.js

  User.prototype.getRoles = function () {
        return this.um.manager.getRoleListOfUser(this.username);
    };

    User.prototype.hasRoles = function (roles) {
        var i, j, role,
            rs = this.getRoles(),
            length1 = roles.length,
            length2 = rs.length;
        L1:
            for (i = 0; i < length1; i++) {
                //Array.indexOf() fails due to Java String vs JS String difference
                role = roles[i];
                for (j = 0; j < length2; j++) {
                    if (role == rs[j]) {
                        continue L1;
                    }
                }
                return false;
            }
        return true;
    };

但是调用此方法失败了。任何人都知道如何获得登录用户的角色,或者如何检查登录用户是否是管理员?

1 个答案:

答案 0 :(得分:1)

您可以通过为用户分配所需的角色来实现此目的,并查看Adding User Roles

或者

您可以使用WSO2 API Manager的发布者API "Validate Roles"来检索登录用户的角色。

Description :
      Check if the user logged in user is any one in a given list of users
URI :
      http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag
URI Parameters :    
      action=validateRoles&roles=<list of roles>
HTTP Methods    :
      GET
Example :
      curl -b cookies "http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag?action=validateRoles&roles=admin"