s4sdk - 使用 UserAccessor 访问用户属性
问题描述
com.sap.cloud.sdk.cloudplatform.security.user.UserAccessor 类允许我检索当前用户及其属性。
例如:
Optional<UserAttribute> optionalfirstName = user.getAttribute("firstname");
UserAttribute ua = optionalfirstName.get();
一旦我检索了 UserAttribute,它就有两个属性“名称”和“值”。但是,没有可用的方法来获取值。如何访问该值?
解决方案
根据您使用的 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 的未来版本中对此进行简化,以便返回实例以便更方便地使用StringUserAttribute
。StringCollectionUserAttribute
推荐阅读
- cakephp - 如何使用 cakePHP 3.x 中使用准备好的语句定义的临时表
- javascript - 显示时如何将动画应用于元素?
- javascript - 如何以角度形式实现我想通过子组件动态呈现表单控件的功能?
- javascript - 通过数组索引将对象从数据传递到 Vue.js 中的组件
- javascript - 为什么 (null==undefined) 在 JavaScript 中为真?
- objective-c - 如何在录制iOS时进入后台时执行strava的操作
- javascript - Angular 表单发送空数据
- hive - 如何让 Beeline 命令行界面识别向上箭头键按下
- elasticsearch - 搜索结果的 ElasticSearch 阈值
- javascript - Webpack 中 Webpack-Manifest-Plugin 的用途