环回DENY在Acl中不起作用

问题描述 投票:3回答:4

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

"acls": [
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    }
]
acl strongloop loopback
4个回答
6
投票

可能的原因:

enable access control,你必须打电话给enableAuth()。例如,在启动脚本server/boot/authentication.js中:

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

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

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

你也可以通过为控制台指定一个值为RoleMapping的qazxsw poi环境变量来尝试qazxsw poi它来记录查找并检查服务器进行请求。


1
投票

尝试删除Role像这样:

loopback-example-access-control repository

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


0
投票

尝试将DEBUG字段值从loopback:security:*更改为accessType


0
投票

它还取决于您的基本模型,因为它可能会被基本模型的ACL覆盖。

例如,如果你的模型是{ "principalType": "ROLE", "principalId": "$everyone", "permission": "DENY" } 基本模型,即使你把LoopBack-sandbox放到accessTypeEXECUTE方法仍然可以工作,除非你指定*

User

参考(用户基本ACL列表):"create"

© www.soinside.com 2019 - 2024. All rights reserved.