我已经完成了WSO2 API Manager 2.5.0的安装。
我正在通过创建新的子主题并编辑.jag文件来自定义Publisher门户。一切正常,直到这里。
我想根据用户角色显示元素。 我的第一个问题是:我可以使用jag文件获取发布者门户中登录用户的角色吗?
我找不到路,所以我想了一个解决方法:向RESTful API发送一个针对WSO2 API Manager - Publisher的请求。 问题是我(在文档上)找不到返回用户角色的方法。
我的第二个问题是:有某种方法可以返回用户的角色?
我知道使用Publisher APIS的解决方案,但是已经弃用了它们,无论如何我都对其进行了测试,即使用户未分配角色,它也始终返回true。
如果需要,请向我询问更多信息。 预先感谢。
答案 0 :(得分: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文件中并使用它的方式。