首页 文章

环回DENY在Acl中不起作用

提问于
浏览
2

我是环回的新手 . 我为所有用户创建了ACL拒绝权限($ everyone) . 但我可以通过swagger访问所有API . 任何人都可以解释这个吗?以下是我的ACL . 谢谢 .

"acls": [
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    }
]

3 回答

  • 4

    可能的原因:

    enable access control,您必须调用 enableAuth() . 例如,在启动脚本中 server/boot/authentication.js

    module.exports = function enableAuthentication(server) {
      server.enableAuth();
    };
    

    还要检查 server/model-config.json 文件,看看 ACLRoleMappingRole 模型是否正确链接到您的数据源 .

    您的ACL是正确的,因此问题出在其他地方 . 如果我的答案对您没有帮助,您可能想要克隆loopback-example-access-control repository,尝试它是否适合您并最终尝试弄清楚它与您的解决方案有何不同 .

    您还可以通过为控制台指定值为 loopback:security:*DEBUG 环境变量来尝试debug来记录查找并在请求进入时检查服务器 .

  • 0

    尝试删除 accessType ,如下所示:

    {
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    }
    

    否则,最好的办法是克隆LoopBack-sandbox并在该存储库中重现该问题并在GitHub上发布问题 .

  • 1

    尝试将 accessType 字段值从 * 更改为 EXECUTE .

相关问题