环回组件存储 acl 401 错误
loopback-component-storage acl 401 error
容器模型如下所示:
{
"name": "container",
"base": "Model",
...
"acls": [
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY",
"accessType": "*"
},
{
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW",
"accessType": "WRITE"
}
]
}
当我 post 向它发送图像时 returns 出现 401 错误。我确定我是以 'admin' 用户身份登录的,因为我在 json 模型中使用相同的访问令牌和相同的 acl 发出了两个请求。对于第一个(不是容器)它可以工作,但对于容器一个不行。
容器ACL有问题吗?
-----编辑-----
从 DEBUG=loopback:security:acl 开始 returns:
---ACL---
model container
property *
principalType ROLE
principalId $everyone
accessType *
permission DENY
with score: 7495
---ACL---
model container
property *
principalType ROLE
principalId admin
accessType WRITE
permission ALLOW
with score: -1
"property": "*"
是 acl 中的默认值。
对于第一个请求(不是容器),它 returns 相同但 admin-write-allow 的分数高于 $everyone-*-deny。
设置"score": -2
无效。
您没有定义 属性(基本上是一种方法),所以我猜 ACl 分辨率给第一个比第二个更高的权重。
"acls": [
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY",
"accessType": "*"
},
{
"principalType": "ROLE",
"principalId": "admin",
"property": "*", // Add this line
"permission": "ALLOW",
"accessType": "WRITE"
}
]
但是,ACL 有时很难弄清楚。我建议使用 debug string 来准确查看 ACL 系统已解析的内容:
On windows:
set DEBUG=loopback:security:acl && node .
编辑:
问题实际上来自 accessType(请求的端点是 EXECUTE 而不是 WRITE),因此 ACL 没有按预期解决。
容器模型如下所示:
{
"name": "container",
"base": "Model",
...
"acls": [
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY",
"accessType": "*"
},
{
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW",
"accessType": "WRITE"
}
]
}
当我 post 向它发送图像时 returns 出现 401 错误。我确定我是以 'admin' 用户身份登录的,因为我在 json 模型中使用相同的访问令牌和相同的 acl 发出了两个请求。对于第一个(不是容器)它可以工作,但对于容器一个不行。
容器ACL有问题吗?
-----编辑-----
从 DEBUG=loopback:security:acl 开始 returns:
---ACL---
model container
property *
principalType ROLE
principalId $everyone
accessType *
permission DENY
with score: 7495
---ACL---
model container
property *
principalType ROLE
principalId admin
accessType WRITE
permission ALLOW
with score: -1
"property": "*"
是 acl 中的默认值。
对于第一个请求(不是容器),它 returns 相同但 admin-write-allow 的分数高于 $everyone-*-deny。
设置"score": -2
无效。
您没有定义 属性(基本上是一种方法),所以我猜 ACl 分辨率给第一个比第二个更高的权重。
"acls": [
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY",
"accessType": "*"
},
{
"principalType": "ROLE",
"principalId": "admin",
"property": "*", // Add this line
"permission": "ALLOW",
"accessType": "WRITE"
}
]
但是,ACL 有时很难弄清楚。我建议使用 debug string 来准确查看 ACL 系统已解析的内容:
On windows:
set DEBUG=loopback:security:acl && node .
编辑:
问题实际上来自 accessType(请求的端点是 EXECUTE 而不是 WRITE),因此 ACL 没有按预期解决。