Доступ к атрибутам пользователя с помощью UserAccessor - PullRequest
0 голосов
/ 19 декабря 2018

Класс com.sap.cloud.sdk.cloudplatform.security.user.UserAccessor позволяет мне получить текущего пользователя и его атрибуты.

Например:

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

После получения атрибута UserAttribute он имеет два свойства: «Имя» и «Значение».Однако нет способа, чтобы получить значение.Как я могу получить доступ к значению?

1 Ответ

0 голосов
/ 20 декабря 2018

В зависимости от используемой среды SAP CP атрибут UserAttribute является экземпляром:

  • SimpleUserAttribute<String> в 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, чтобыStringUserAttribute и StringCollectionUserAttribute экземпляры возвращаются для более удобного использования.

...