在发布者门户或 API WSO2 API 发布者中获取用户角色

Get user roles in Publisher portal or API Publisher of WSO2 API Manager

我已经安装了 WSO2 API Manager 2.5.0。

我正在通过创建新的子主题和编辑 .jag 文件来自定义 Publisher 门户。到这里为止一切正常。

我想根据用户角色显示元素。 我的第一个问题是:我可以在 jag 文件中获取登录 Publisher 门户的用户的角色吗?

我找不到路,所以我想到了一个变通办法:向 RESTful API 发送一个 WSO2 API Manager - Publisher 的请求。 问题是我找不到(在文档中)return 用户角色的方法。

我的第二个问题是:有什么方法可以return用户的角色?

我知道使用 Publisher APIS 的解决方案,但它们已被弃用,无论如何我已经测试过了,即使用户没有分配角色,它也总是 return true。

如果需要,请向我询问更多信息。 提前致谢。

一种可能的解决方案是调用从 APIUtil class 公开的 java 方法。您从这个实用程序 class 中寻找的方法是具有以下签名的 getListOfRoles 方法。

public static String[] getListOfRoles(String username) throws APIManagementException;

或者您可以使用下面的方法,它不会抛出任何错误,而是 return 在错误情况下抛出一个空数组。

public static String[] getListOfRolesQuietly(String username);

所以要在你的 jaggery 文件中使用这个方法,你可以使用下面的方法

var roleList = Packages.org.wso2.carbon.apimgt.impl.utils.APIUtil.getListOfRoles(userName);

以上内容应该 return 您的 jaggery 文件中的角色字符串数组,您可以使用它来继续下一步。如果您检查在 Store 或 Publisher 应用程序中找到的其他 jaggery 文件,上述方法是将 java class 导入 jaggery 文件并使用它的方法。

APIUtil class 可在此处获得:https://github.com/wso2/carbon-apimgt/blob/1.2.5/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java#L2420