我需要获取登录 API 管理器的用户的用户声明。我更喜欢使用粗糖来做到这一点。
但是,当我尝试以下
var carbon = require('carbon');
var tenantId = -1234;
var url = 'https://10.100.0.49:9443/admin/services/';
var server = new carbon.server.Server(url);
var userManager = new carbon.user.UserManager(server, tenantId);
var user1 = new carbon.user.User(userManager, 'admin');
var userClaims = user1.getClaimsForSet(['http://wso2.org/claims/givenname'],'default');
print(userClaims);
我得到{}
了回应。我已经通过管理控制台为管理员添加了一个给定名称的值
我还尝试获取另一个注册 API 商店但无济于事的用户的声明值。
除此之外,我在 .js 中创建了一个 js 模块,在carbon.user
其中声明module.xml
并通过 jag 文件调用它。再一次,我得到了回应,但它是空的,即。{}
. 我通过js链接的服务是org.wso2.carbon.um.ws.service.UserStoreManagerService
我实际上将 API Manager 与 Identity Server 结合使用。两台服务器都已根据此处给出的文档进行集群 https://docs.wso2.com/display/CLUSTER44x/Configuring+the+Identity+Server+5.2.0+as+a+Key+Manager+with+API+Manager +2.0.0 和这里 https://docs.wso2.com/display/CLUSTER44x/Configuring+the+Pre-Packaged+Identity+Server+5.2.0+with+API+Manager+2.0.0
由于用户存储是相同的,我认为即使 Identity Server 正在处理用户管理,我也应该能够通过 API Manager 获取声明。
但是,可以肯定的是,我也尝试按原样使用 API Manager 并通过上述方法检索声明。
这可能是什么原因,我如何检索我需要的索赔?