使用UserAccessor访问用户属性

时间:2018-12-19 20:24:07

标签: s4sdk

com.sap.cloud.sdk.cloudplatform.security.user.UserAccessor类允许我检索当前用户及其属性。

例如:

    Optional<UserAttribute> optionalfirstName = user.getAttribute("firstname"); 
    UserAttribute ua = optionalfirstName.get(); 

一旦检索到UserAttribute,它就有两个属性“名称”和“值”。但是,没有可用的方法来获取值。我如何获得价值?

1 个答案:

答案 0 :(得分:5)

取决于您使用的SAP CP环境,UserAttribute是以下内容的实例:

  • SimpleUserAttribute<String> on Neo
  • CollectionUserAttribute<String>在Cloud Foundry上

您可以通过类型转换到所需实例来访问相应的值:

if( ua instanceof SimpleUserAttribute ) {
    String value = (String) ((SimpleUserAttribute<?>)ua).getValue();
}
else if ( ua instanceof CollectionUserAttribute ) {
    Collection<?> values = ((CollectionUserAttribute<?>)ua).getValues();
}

注意:我们计划在以后的SDK版本中对此进行简化,以便返回StringUserAttributeStringCollectionUserAttribute实例,以方便使用。