使用api删除对角色的apigee权限

时间:2014-09-09 13:38:59

标签: apigee

我创建了一个userrole,现在我无法使用api删除其中一个权限。我想阻止对资源的所有访问,所以我用一个空的http谓词数组创建它。这可以使用singlemulti添加权限资源,如此

POST /userroles/readonly/permissions" -d '{"path" : "/resource", "permissions" : []}' -H "Content-Type:application/json"

但是现在我想从我无法删除的角色中删除该权限,因为delete在路径中使用了http动词并且是必需的,因为在我的情况下没有http动词,调用失败并且我无法删除。如果我有动词那么它就像这样

DELETE "/userroles/readonly/permissions/get?path=/resource" 

如果我在没有指定动词的情况下调用api,则会因此错误而失败:

< HTTP/1.1 400 Bad Request
...
"code" : "security.QueryParamResourcePathCannotBeNull",
"message" : "Query parameter path cannot be null or empty",
"contexts" : [ ]

如果可以避免,我真的不想删除该角色并重新创建它。

有什么想法吗?这似乎是权限系统中的一个设计缺陷。

谢谢!

1 个答案:

答案 0 :(得分:0)

在上面的示例中,

没有删除权限。

为什么不尝试添加&#39; get&#39;通过相同的POST调用获得fiest的许可,如果你愿意,可以删除。即使您已经修改了资源权限,POST仍然有效。

在这种情况下,DELETE调用会产生正确的删除响应。

请评论它是怎么回事。

步骤1

curl http://hostname/v1/organizations/myorg/userroles/role1/permissions  -u "admin@org.com:***" -d '{"path" : "/resource", "permissions" : ["get"]}' -H "Content-Type:application/json" -v 

第二步

curl -X DELETE  "http://hostname/v1/organizations/myorg/userroles/role1/permissions/get?path=/resource"  -u "admin@org.com:***"   -v