Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UserProfileMgtService无法在WSO2 is 5.2.0中找到用户_Wso2_Wso2is_Wso2carbon - Fatal编程技术网

UserProfileMgtService无法在WSO2 is 5.2.0中找到用户

UserProfileMgtService无法在WSO2 is 5.2.0中找到用户,wso2,wso2is,wso2carbon,Wso2,Wso2is,Wso2carbon,我最近将我的环境从WSO2 IS 5.0.0更新为WSO2 IS 5.2.0。我的环境由两台正在创建集群的计算机组成(使用WKA成员资格方案和启用粘性会话的负载平衡器(AWS ELB))。我使用的是MySQL(不是默认的H2数据库)。部署的计算机是Windows Server 2012 R2(EC2 AWS计算机)。我也在使用所谓的WSO2 IS管理服务 如标题中所述,我正在使用UserProfileMgtService ()。 与之结合使用的是OAuth2TokenValidationServ

我最近将我的环境从WSO2 IS 5.0.0更新为WSO2 IS 5.2.0。我的环境由两台正在创建集群的计算机组成(使用WKA成员资格方案和启用粘性会话的负载平衡器(AWS ELB))。我使用的是MySQL(不是默认的H2数据库)。部署的计算机是Windows Server 2012 R2(EC2 AWS计算机)。我也在使用所谓的WSO2 IS管理服务

如标题中所述,我正在使用UserProfileMgtService
()。
与之结合使用的是OAuth2TokenValidationService
().

如果我将有效的访问令牌传递给OAuth2TokenValidationService,我就能够使用OAuth2TokenValidationService的验证方法填写数据OAuth2TokenValidationResponseDTO对象。因此,我能够提取authorizedUser并将其传递给UserProfileMgtService的getUserProfile方法。我使用的是标准的carbon.super域名,我使用的是电子邮件作为用户名。例如,我将以下两个参数传递给getUserProfile:
"admin@admin.com@“carbon.super”作为用户名
“默认”作为profileName
因此,我收到以下消息:
UserNotFound:Useradmin@admin.com@carbon.super不存在于:PRIMARY
如果我从authorizedUser中删除“@carbon.super”,一切都很好,我可以获得用户配置文件信息。这对我来说非常重要,因为我使用的是is的多租户,而且我可能有以下用户:
admin@admin.com@test.net
admin@admin.com@test2.net

我注意到这个服务在WSO2 IS 5.0.0中不是这样工作的。升级后,我开始遇到此问题

这是一个期望的行为,并且是因为Is 5.2.0中API的更改而引入的吗?如果是,是否有其他方法可以使用“用户名”+“租户域”(在传递有效访问令牌时由OAuth2TokenValidationService作为授权用户检索)获取用户配置文件。
这是否可能是由于配置错误造成的?如果是,需要更新的文件是哪一个?其中应该修改哪些内容?
是否有地方可以检索WSO2 Is 5.2.0管理服务的更多信息


提前感谢。

Identity Server中的UserProfileMgtService是一项管理服务。在WSO2管理服务中,租户域由经过身份验证的用户标识,不应使用用户名传递

用户名应为无租户用户名。

所以,您可以从用户名中删除carbon.super部分,然后它就可以工作了

在租户设置中,您需要向租户用户(例如admin@admin.com@net)以访问这些API。因此,就像超级租户一样,您可以使用无租户用户名,然后它就可以工作了

例如,如果要获取用户的用户配置文件:testuser@admin.com在tenant domain test.net中,您的请求应该类似于下面的图像

谢谢

伊苏拉

谢谢你的回复。我明白你的意思(我想),我使用管理员凭据来提供服务的上下文,然后我只是用户名。如果我通过carbon.super的管理员凭据,我将从carbon.super租户检索配置文件。如果我通过了test.net租户的管理员凭据,我将从test.net租户检索身份。是。你是对的。为了检索给定租户中的配置文件,需要向同一租户进行身份验证。