2016-05-18 23 views
2

容器模型看起來像這樣:迴環分量存儲ACL 401錯誤

{ 
    "name": "container", 
    "base": "Model", 
    ... 
    "acls": [ 
    { 
     "principalType": "ROLE", 
     "principalId": "$everyone", 
     "permission": "DENY", 
     "accessType": "*" 
    }, 
    { 
     "principalType": "ROLE", 
     "principalId": "admin", 
     "permission": "ALLOW", 
     "accessType": "WRITE" 
    } 
    ] 
} 

當我張貼的圖像時,它就把返回401錯誤。我確定我以'admin'用戶身份登錄,因爲我在json模型中使用相同的訪問令牌和相同的acl發出兩個請求。對於第一個(不是容器)它起作用,但對於容器不是。

容器ACL有問題嗎?

----- -----編輯

與DEBUG =迴環開始:安全性:訪問列表返回:

---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。

對於第一個請求(不是容器),它返回相同的值,但是管理員寫入允許具有比$ everyone更高的分數 - * - 拒絕。

設置"score": -2不起作用。

回答

1

你沒有定義屬性(基本上是一種方法),所以我猜測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系統已經解決:

在Windows上:

set DEBUG=loopback:security:acl && node . 

編輯:

這個問題實際上是由存取類型來(請求端點是EXECUTE而不是WRITE),因此ACL未按預期解決。

+0

感謝您的調試提示。 ''property「:」*「'接縫是默認的接縫。 – Piu130

+0

我用'「property」:「*」'試過了。得分是相同的,它不起作用。 – Piu130

+0

你在打電話給哪一個? – Overdrivr