我有一个带有一些数据库表和OData服务的SAP HANA XS服务器。我能够连接到OData服务并读取数据。一旦我尝试创建/更新/删除数据,我就会收到403 - Forbidden
错误
实际上我的用户拥有执行所有上述操作所需的权限(我使用HANA Studio中的SQL命令行创建了数据)。当我尝试使用SYSTEM用户时,我会得到相同的结果。
答案 0 :(得分:1)
如果您的.xsaccess文件如下所示:
{
"prevent_xsrf": true,
...
}
在修改实体之前,您必须获取XSRF令牌。阅读实体无需工作。
可以通过使用以下标头X-CSRF-Token=Fetch
对服务端点执行GET来获得这样的标记。响应包含类似此X-CSRF-Token=13DC4988AEAA95...
的标头。如果您执行例如现在使用刚刚获得的令牌POST它将起作用。
答案 1 :(得分:0)
我猜你的OData服务被定义为不允许修改数据。
默认情况下,OData服务中的所有实体集和关联都是可写的,即可以使用CREATE,UPDATE或DELETE请求对其进行修改。但是,您可以通过使用{{1设置适当的关键字(创建,更新或删除)来阻止执行修改请求OData服务定义中的选项。以下SAP HANA XS的OData服务定义示例显示了如何防止对OData服务公开的表
forbidden
进行任何修改。任何使用CREATE,UPDATE或DELETE请求修改指定表的尝试都会导致HTTP响应状态为myTable
。
403 FORBIDDEN