【问题标题】:Get user roles in Publisher portal or API Publisher of WSO2 API Manager在 WSO2 API Manager 的 Publisher 门户或 API Publisher 中获取用户角色
【发布时间】:2018-09-28 20:39:37
【问题描述】:

我已经安装了 WSO2 API Manager 2.5.0。

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

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

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

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

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

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

【问题讨论】:

    标签: wso2 wso2-am


    【解决方案1】:

    一种可能的解决方案是调用从 APIUtil 类公开的 java 方法。您从这个 util 类中查看的方法是 getListOfRoles 方法,它具有以下签名。

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

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

    public static String[] getListOfRolesQuietly(String username);
    

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

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

    以上内容应在您的 jaggery 文件中返回一个角色字符串数组,您可以使用它继续执行后续步骤。如果您检查在 Store 或 Publisher 应用中找到的其他 jaggery 文件,上述方法就是您将 java 类导入 jaggery 文件并使用它的方法。

    APIUtil 类在这里可用: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

    【讨论】:

    • 感谢@Kishanthan 的回答。我会试试你的解决方案,我会告诉你结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    相关资源
    最近更新 更多