仅限环回 $owner
Loopback $owner only
我有一个环回应用程序,每个客户都可以拥有自己的服务。因此,我需要客户只能看到、添加、编辑和删除它自己的服务。但是不管我怎么弄,好像客户要么可以看到所有用户的所有服务,要么没有人可以看到任何人的服务。
服务模式
"relations": {
"customer": {
"type": "belongsTo",
"model": "customer",
"foreignKey": "customerId"
}
}
还有我看到的 alc:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
]
但是如果像这个服务的拥有者一样,只能/GET/{id}是服务,却不能/GET所有的服务?!?
如果我使用这个:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW"
}
]
我已经得到了我需要的东西,但这是一个主要的安全漏洞,因为每个客户都可以从所有其他客户那里获得所有服务。
您需要在 service
模型中添加 属性 customerId
并且 $owner
acl 只有在 :id
段存在于 api url.
如果您的 url 没有任何 :id
您可以创建自定义角色解析器。
我有一个环回应用程序,每个客户都可以拥有自己的服务。因此,我需要客户只能看到、添加、编辑和删除它自己的服务。但是不管我怎么弄,好像客户要么可以看到所有用户的所有服务,要么没有人可以看到任何人的服务。
服务模式
"relations": {
"customer": {
"type": "belongsTo",
"model": "customer",
"foreignKey": "customerId"
}
}
还有我看到的 alc:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
]
但是如果像这个服务的拥有者一样,只能/GET/{id}是服务,却不能/GET所有的服务?!?
如果我使用这个:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW"
}
]
我已经得到了我需要的东西,但这是一个主要的安全漏洞,因为每个客户都可以从所有其他客户那里获得所有服务。
您需要在 service
模型中添加 属性 customerId
并且 $owner
acl 只有在 :id
段存在于 api url.
如果您的 url 没有任何 :id
您可以创建自定义角色解析器。