【问题标题】:How to set up the ACL to allow everyone list all the Users from the REST API如何设置 ACL 以允许所有人列出来自 REST API 的所有用户
【发布时间】:2014-08-17 21:02:19
【问题描述】:

我尝试使用 REST API 列出我的环回 2.0 应用程序中的所有用户,但出现以下错误:

{
  "error": {
    "name": "Error",
    "status": 401,
    "message": "Authorization Required",
    "statusCode": 401,
    "stack": "...."
  }
}

我手动将 ACL 添加到 model-config.json 文件中:

"User": {
    "dataSource": "db",
    "acls": [
        {
            "principalType": "ROLE",
            "principalId": "$everyone",
            "permission": "ALLOW",
            "accessType": "*"
        }
    ]
},

既然失败了,我就根据 User 内置模型创建了一个模型:

{
    "name": "Admin",
    "base": "User",
    "properties": {},
    "validations": [],
    "relations": {},
    "acls": [
        {
            "principalType": "ROLE",
            "principalId": "$everyone",
            "permission": "ALLOW",
            "accessType": "*"
        }
    ],
    "methods": []
}

但是在 REST API 中我仍然有同样的问题:

{
  "error": {
    "name": "Error",
    "status": 401,
    "message": "Authorization Required",
    "statusCode": 401,
    "stack": "....."
  }
}

感谢您的帮助。 =)

【问题讨论】:

  • 您可以使用 DEBUG=loopback:security:* node 运行应用程序。获取 ACL 的调试信息。这可能会有所帮助。
  • @snathan 感谢您的调试提示!这帮助我看到了发生了什么,还有另一个得分更高的 ACL,所以我为“accessType”:“READ”而不是“accessType”:“*”添加了一个单独的条目,这给了我的 ACL 更高的分数。

标签: javascript strongloop loopbackjs


【解决方案1】:
  1. 我们应该允许您使用其他 ACL 进一步配置内置模型。这是 LoopBack 的待办事项。

  2. 您可以在 common/user.json 中对内置 User 模型进行子类化,如图所示。

    { “名称”:“用户”, “基地”:“用户”, “复数”:“用户” }

然后你需要通过在 server/model-config.json 中添加一个条目来将其暴露给 REST,例如:

"user": {
    "dataSource": "db",
    "public": true
  },

【讨论】:

  • 感谢您指出我们无法扩展内置模型的 ACL。我的 common/admin.json 最终是这样的: { "name": "Admin", "base": "User", "plural": "Admins", "properties": {}, "validations": [], “关系”:{},“acls”:[{“principalType”:“ROLE”,“principalId”:“$everyone”,“permission”:“ALLOW”,“accessType”:“READ”}],“方法": [] }
  • 如果文档反映了这一点,那就太好了,b/c 我差不多一年后才来,遇到了同样的问题,但没有在文档中被警告过。跨度>
【解决方案2】:

似乎环回 ppl 也遇到了这个问题: https://github.com/strongloop/loopback-example-access-control/issues/8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-27
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多