环回中的拒绝权限问题

Denying permissions issue in loopback

我已经基于内置的用户模型创建了一个模型 Webuser。

这是此模型在 "webuser.json" 中的 ACL 条目:

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

令我惊讶的是,我可以毫无问题地通过 POST /api/webusers/login 登录。我希望所有访问都被拒绝。

我做错了什么?

好吧,我相信 default user acls 仍在工作,它们没有被覆盖。环回决定哪个 ACL 条目对请求有效的方式是选择最晚出现的最具体的条目。所以环回定义了这个条目:

{
  "principalType": "ROLE",
  "principalId": "$everyone",
  "permission": "ALLOW",
  "property": "login"
}

由于它非常具体,要击败它,您必须在模型中添加它:

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

还有另一种通过代码删除默认用户 acls 的方法,但未记录在案。