首页 > 解决方案 > 使用 UserAccessor 访问用户属性

问题描述

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

例如:

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

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

标签: s4sdk

解决方案


根据您使用的 SAP CP 环境,UserAttribute 是以下实例:

  • SimpleUserAttribute<String>在新
  • 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


推荐阅读