即使提供了有效的JWT,也会出现403错误被禁止

2020-08-16 07:25发布

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

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

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


大家好,

我已经使用SAP CAP创建了一个简单的oData服务。 我将其部署在HCP中(线索)。 我正在使用邮递员检查服务响应。 即使添加了有效的JWT令牌后,服务也会抛出403 Forbidden错误。 我已经为HCP中的ID分配了所有必要的角色集合(管理者角色)。 请找到所附的屏幕截图和我的项目的代码。

邮递员获得令牌访问权限:

Admin.cds

使用" ../db/test"中的{sap.capire.bank_details作为我的};

 服务MyService @((需要:['经过身份验证的用户']){

     实体产品@(限制:[{授予:['*'],发送给:'经理'}])
     作为我的产品上的投影;
 }

 

XS-security.json

 {
   " xsappname":" test_project",
   "租户模式":"专用",
   "范围":[
     {
       " name":" $ XSAPPNAME.Manager",
       "描述":"经理"
     }
   ],
   "属性":[],
   "角色模板":[
     {
       " name":"经理",
       " description":"生成",
       "范围参考":[
         " $ XSAPPNAME.Manager"
       ],
       "属性引用":[]
     }
   ]
 }
 

mta.yaml

 ##基于模板版本0.2.0生成的mta.yaml
 ## appName = test_project
 ## language = nodejs;  multiTenant = false
 ## approuter =
 _schema-version:'3.1'
 ID:test_project
 版本:1.0.0
 描述:"一个简单的CAP项目。"
 参数:
   启用并行部署:true
 构建参数:
   之前:
    -建设者:自定义
      命令:
       -npm安装
       -npx cds build \/全部

 模块:
  #---------------------服务器模块------------------------
  -名称:test_project-srv
  #-------------------------------------------------  -----------
    类型:nodejs
    路径:gen/srv
    特性:
      退出:1#由deploy.js任务终止
    要求:
     #从CAP配置中提取的资源
     -名称:test_project-db
     -名称:test_project-uaa
    提供:
     -名称:CAP服务使用者(例如approuter)所需的srv-binding#
       特性:
         srv-url:$ {default-url}

  #-------------------- SIDECAR模块------------------------
  -名称:db
  #-------------------------------------------------  -----------
    类型:hdb
    路径:gen/db
    参数:
      应用名称:test_project-db
    要求:
     #从CAP配置中提取的'hana'和'xsuaa'资源
     -名称:test_project-db
     -名称:test_project-uaa

  -名称:test_project-appadmin
    类型:nodejs
    路径:应用
    构建参数:
      忽略:[" node_modules/"]
    参数:
       磁盘配额:256M
       记忆体:256M
    要求:
       -名称:test_project-uaa
       -名称:srv-binding
         组:目的地
         特性:
           forwardAuthToken:true
           strictSSL:假
           名称:srv-binding
           网址:〜{srv-url}

 资源:
  #从CAP配置中提取的服务
  #'service-plan'可以通过'cds.requires。 .vcap.plan'进行配置
 #-------------------------------------------------  -----------
  -名称:test_project-db
 #-------------------------------------------------  -----------
    类型:com.sap.xs.hdi-container
    参数:
      服务:在试用环境中使用" hannatrial"或" hanatrial"
      服务计划:hdi共享
    特性:
      hdi-service-name:$ {service-name}

  -名称:test_project-uaa
    类型:org.cloudfoundry.managed-service
    参数:
     路径:./xs-security.json
     服务:xsuaa
     服务计划:应用
     服务键:
         -名称:school-xsuaa-key
     配置:
       xsappname:test_project-$ {space}
       租户模式:专用

 

xs-app.json(位于App文件夹内)

 {
     " authenticationMethod":"路由",
     "路线":[
         {
             " source":" ^/(。*)$",
             " target":" $ 1",
             " authenticationType":" xsuaa",
             " destination":" srv-binding",
             " csrfProtection":false
            
         }
     ]
 }

 

package.json

 {
     " name":" test_project",
     " version":" 1.0.0",
     " description":"一个简单的CAP项目。",
     " repository":" <在此处添加您的存储库>",
     " license":" UNLICENSED",
     "私人":是的,
     "依赖关系":{
         " @ sap/cds":" ^ 3",
         " @ sap/hana-client":" ^ 2.4.177",
         " @ sap/xsenv":" ^ 2.2.0",
         " @ sap/xssec":" ^ 3.0.3",
         "表达":" ^ 4",
         "护照":" ^ 0.4.1"
     },
     "脚本":{
         " start":" npx cds运行"
     },
     " cds":{
         "要求":{
             "D b": {
                 " kind":" hana"
             }
         },
         " uaa":{
             " kind":" xsuaa"
         }
     }
 }
 

package.json(位于应用程序文件夹中)

 {
   " name":" appadmin",
   " version":" 0.0.1",
   " description":"",
   " devDependencies":{
     " @ sap/grunt-sapui5-bestpractice-build":" 1.4.2"
   },
   "依赖关系":{
     " @ sap/approuter":" 7.1.1"
   },
   "引擎": {
     "节点":" ^ 10"
   },
   "脚本":{
     " start":"节点node_modules/@sap/approuter/approuter.js"
   }
 }
 

(21.4 kB)