WSO2是更新用户声明的5.9.0

WSO2是更新用户声明的5.9.0,wso2,wso2is,Wso2,Wso2is,我有两个问题,当使用RemoteUserStoreManagerServiceSOAP端点中的setUserClaimValue方法时,更新效果良好 但是,endpont/userinfo丢失了值,我需要重新验证用户以生成一个新的访问令牌,所有操作都会再次正常工作 我需要使用RemoteUserStoreManagerService中的setUserClaimValue方法更新多个声明,但没有发生任何事情,我没有任何错误,但声明未更新 这是我的环境: username@mail.com htt

我有两个问题,当使用
RemoteUserStoreManagerService
SOAP端点中的
setUserClaimValue
方法时,更新效果良好

但是,endpont
/userinfo
丢失了值,我需要重新验证用户以生成一个新的访问令牌,所有操作都会再次正常工作

我需要使用
RemoteUserStoreManagerService
中的
setUserClaimValue
方法更新多个声明,但没有发生任何事情,我没有任何错误,但声明未更新

这是我的环境:


username@mail.com
http://wso2.org/claims/emailaddress
newemail@mail.com
我应该使用什么方法更新多个索赔? 为什么在更新声明时,我的实际访问令牌从/userinfo端点丢失了数据,并且有必要生成新的访问令牌?

1)

我应该使用什么方法更新多个索赔

您必须使用
RemoteUserStoreManagerService
中的
setUserClaimValues
。有关此
RemoteUserStoreManagerService
的更多信息,请遵循此操作

下面给出了一个示例soap服务

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://service.ws.um.carbon.wso2.org" xmlns:xsd="http://common.mgt.user.carbon.wso2.org/xsd">
   <soap:Header/>
   <soap:Body>
      <ser:setUserClaimValues>
         <ser:userName>piraveena</ser:userName>
         <ser:claims>
            <xsd:claimURI>http://wso2.org/claims/organization</xsd:claimURI>
            <xsd:value>wso2</xsd:value>
         </ser:claims>
         <ser:claims>
            <xsd:claimURI>http://wso2.org/claims/country</xsd:claimURI>
            <xsd:value>srilanka</xsd:value>
         </ser:claims>
         <ser:profileName>default</ser:profileName>
      </ser:setUserClaimValues>
   </soap:Body>
</soap:Envelope>

皮拉韦纳
http://wso2.org/claims/organization
wso2
http://wso2.org/claims/country
斯利兰卡
违约
(二)

为什么在更新声明时,我的实际访问令牌丢失了来自 /用户信息端点

我无法在本地复制此问题。即使在通过管理服务更新声明之后,我也能够在不重新验证的情况下获得userclaims

更新用户声明时,事件还将清除映射到accesstoken的userattribute缓存。因此,下次调用useinfo端点时,缓存将为空。在这种情况下,索赔将从userstore获得。请参考这里的这个。因此,用户不需要重新验证,因为userstore中存在userattributes


但是,当您启用电子邮件作为用户名,并通过服务更新用户的电子邮件时,您可能会遇到此问题。

您是否尝试将profileName值作为“默认值”提供