对于approuter中的所有路由,始终禁止使用没有authenticationType的一条路由(403)

2020-08-15 10:08发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 在我的CAP应用程序...

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

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


大家好,

在我的CAP应用程序中,我有两个应用程序(通过fiori.html页面导航)。 使用此博客有关JWT令牌的文档,我能够使用approuter 当地。 在SCP上,我担任该应用程序的管理员角色。

现在我遇到了问题:一个应用程序(service:port/fiori.html#browse-people)始终可用,而另一个应用程序(service:port/fiori.html#manage-people)则永远不可用( 技术错误显示"禁止":403)。

在approuter中,如果我将" authenticationType":" none"更改为" xsuaa",则没有任何区别。
在服务定义中,我删除了所有限制。

我想知道第二条路线是否可以从其他来源限制,或者为什么我只能打开一条路线。


xs-app.json如下:

 {
     " welcomeFile":"/fiori.html",
     " authenticationMethod":"路由",
     "路线":[
       {
         " source":" ^/fiori.html(。*)",
         " destination":" srv-binding",
         " authenticationType":"无",
         " scope":" $ XSAPPNAME.admin",
         " csrfProtection":false
       },
       {
         "资源": "/img/",
         " destination":" srv-binding",
         " authenticationType":"无",
         " scope":" $ XSAPPNAME.admin",
         " csrfProtection":false
       }
     ]
   }

 
干杯,
索尔斯滕
3条回答
SAP小菜
2020-08-15 10:22 .采纳回答

Thorsten,你好

我有点惊讶,看到这个xs-app.json :)可以正常工作。

通常,您在那里至少有2条路线。 一个指向本地资源(用于Fiori UI),另一个指向目标服务器。 因此,典型的模式是:

 {
   " welcomeFile":" index.html",
   " authenticationMethod":"路由",
   "路线":[
    {
     " source":" ^/cap/(.*)$",
     " target":"/img/$ 1",
     "目标":"后端"
    },
    {
     " source":" ^(。*)$",
     " localDir":"。
    }
   ]
 }
 

此模式假定UI资源位于当前目录中。 通常,使用本地文件夹" resources"代替。

现在,所有对"/img/cap/..."的请求都将路由到在approuter的"目标"环境中配置的URL。 " <某些主机>/cap/admin/Books"->" <目标>/admin/Books"。

您还需要为您的UI提供一个匹配的manifest.json文件,其中包含指向包含"/img/cap"段的服务的正确路径。 例如:

 ...
         "数据源": {
             " AdminService":{
                 " uri":"/img/cap/admin/",
                 " type":" OData",
                 " settings":{" odataVersion":" 4.0"}
         },
 ... 

请勿在源代码模式中使用" fiori.html"。 这不是UI发送到CAP后端的请求的URL的一部分。 请注意,如果设置了" authenticationMethod":" route",则无需为路由指定" authenticationType":" xsuaa"。 然后," xsuaa"是所有路由的默认设置。

我建议朝这个方向清理xs-app.json,然后让我们进一步调试。 例如,学习发送谁是" Forbidden:403"是很有趣的。 这是approuter,还是CAP服务器?

关于

一周热门 更多>