无法在Cloud Foundry中的HANA DB中读取业务用户属性

2020-08-23 00:43发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好专家

我在Cloud Foundry中创建了一个简单的MTA应用程序,该应用程序通过Node JS连接到Hana DB。 该应用程序定义了具有显示范围和用户属性"国家/地区"的角色模板"查看器"。 部署应用程序后,我已经从该模板创建了角色和角色集合,并将其分配给业务用户。

现在,我无法在数据库级别读取这些属性。 我正在发布一个简单的选择。

从虚拟对象中选择session_context('XS_COUNTRY'); 

但是这显示为空。

从M_SESSION_CONTEXT中进行

select和select session_context('APPLICATOINUSER')也显示空值。

我可以在Node JS应用程序级别的JWT令牌中看到范围和用户属性。

我错过了什么吗? 该应用程序部署在Cloud Foundry试用实例上。

可以从链接

访问该项目

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好专家

我在Cloud Foundry中创建了一个简单的MTA应用程序,该应用程序通过Node JS连接到Hana DB。 该应用程序定义了具有显示范围和用户属性"国家/地区"的角色模板"查看器"。 部署应用程序后,我已经从该模板创建了角色和角色集合,并将其分配给业务用户。

现在,我无法在数据库级别读取这些属性。 我正在发布一个简单的选择。

从虚拟对象中选择session_context('XS_COUNTRY'); 

但是这显示为空。

从M_SESSION_CONTEXT中进行

select和select session_context('APPLICATOINUSER')也显示空值。

我可以在Node JS应用程序级别的JWT令牌中看到范围和用户属性。

我错过了什么吗? 该应用程序部署在Cloud Foundry试用实例上。

可以从链接

访问该项目
付费偷看设置
发送
4条回答
zhangjiyang1323
1楼-- · 2020-08-23 01:22

我认为您的问题可能是您在通过护照处理JWT令牌之前正在加载hdbext中间件。 因此,没有令牌信息可以注入到数据库会话中,因为尚未对其进行处理。 我建议在加载数据库中间件之前先加载安全信息,如下例所示:

https://github。 com/SAP/com.sap.openSAP.hana5.example/blob/hana2_sps03/core_node/server.js

上面引用的示例在会话上下文中看到APPLICATIONUSER或自定义属性没有问题。

悠然的二货
2楼-- · 2020-08-23 01:15

嗨阿吉特

如果您能够在HANA中检索Attribute值,我的情况与此类似。

最诚挚的问候

Rakshetha

SKY徐
3楼-- · 2020-08-23 01:27
骆驼绵羊
4楼-- · 2020-08-23 01:29

感谢托马斯,

我尝试了。 但是,现在运行该应用程序时出现"内部服务器错误"。 core-js服务日志显示以下错误消息:

 [APP/PROC/WEB/0]错误:无法通过SET命令设置预定义的会话变量:XS_APPLICATIONUSER 

在进一步研究此错误的过程中,我遇到了以下注释: 2470084

您的SAPCP帐户中的HANA实例默认情况下没有与XSUAA的直接连接。

我正在按照该注释的b)Sap Cloud Platform(SAPCP)下的步骤建立这种信任。

我已完成以下操作:

-在笔记本电脑上下载了xsuaa_hdbtrust_sql.sh bash shell脚本
-我的操作系统是Windows,我下载了cygwin来运行此脚本。

-如步骤1中所述获得元数据URL。

-按照步骤2中的说明执行以下操作:

/cygdrive/c/Users/ajc5cob/Desktop/Software/xsuaa_trust
 $ ./xsuaa_hdbtrust_sql.sh -a https://XXXXX.authentication.eu10.hana.ondemand.com/sap/trust/jwt -q〜/xs_appuser.sql 

但是,这会出现以下错误:

 ./xsuaa_hdbtrust_sql.sh:第71行:curl:找不到命令
 ##############################################
 错误
 从请求到基础的响应
 URI https://robertbosch.authentication.eu10.hana.ondemand.com/login为空
 在https://XXXXXXX.authentication.eu10.hana.ondemand.com上检查参数-a和/或XSUAA
 ##############################################
 用法:./xsuaa_hdbtrust_sql.sh <选项>
 此bash脚本为XWT信任调用xsuaa REST端点,并创建一个SQL脚本以手动执行
 选项:
  -a:xsuaa基本URI [默认值:https://localhost:30032/uaa-security]
  -i:[默认值:xsuaa_template.sql]中的SQL模板
  -q:创建SQL文件[默认值:xs_appuser.sql]
  -n:HANA主机名:端口[默认:EMPTY,不使用hdbsql]
  -u:HANA系统用户名[默认:系统]
  -p:HANA系统用户密码sa
 

不确定如何继续进行。 我已经在我的试用SCP和生产SCP帐户中尝试过此操作。 而且我得到同样的错误。 请指教

当我访问 https://XXXXX时。 通过浏览器手动进行authentication.eu10.hana.ondemand.com/sap/trust/jwt ,我正在获取访问令牌。

谢谢,

阿吉斯

一周热门 更多>