Apigee Admin - 无法创建适当的用户权限

时间:2014-11-05 10:26:14

标签: ios ant apigee

我正在使用Apigee BaaS管理员门户网站和Apigee iOS SDK,尝试创建适当的Apache Ant模式,以允许我在用户实体和设备实体之间创建关系。

默认情况下,每当您使用Facebook登录创建用户时,这两个集合(/ users和/ devices)之间就已存在关联关系。但每当我发出GET请求时,我都不会返回任何实体。因此我尝试POST手动创建关系。

我尝试使用iOS Apigee SDK创建的关系示例:

ApigeeClientResponse *registerResponse = [[self.apigeeClient dataClient] connectEntities:@"users" connectorID:user_uuid type:@"devices" connecteeID:userDeviceUUID];

@try {

    NSLog(@"Response: %@", registerResponse.response);

} @catch (NSException *e) {

    NSLog(@"Error: %@", e);

}

我得到的回应:

Response: Subject does not have permission [applications:post:xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx:/users/xxxxx-xxxx-xxxx-xxxx/devices/xxxxx-xxxx-xxxx-xxxx]

我尝试过以下模式,但到目前为止还没有对我有用:

POST /roles/default/permissions {"permission":"get,post,put:**/devices"}
POST /roles/default/permissions {"permission":"get,post,put:/devices/**"}
POST /roles/default/permissions {"permission":"get,post,put:**/devices"}
POST /roles/default/permissions {"permission":"get,post,put:**/devices/**"}
POST /roles/default/permissions {"permission":"get,post,put:/users/*/devices/**"}
POST /roles/default/permissions {"permission":"get,post,put:/users/*/devices/*"}
POST /roles/default/permissions {"permission":"get,post,put:/users/${user}/devices/**"}
POST /roles/default/permissions {"permission":"get,post,put:/users/${user}/devices/*"}
POST /roles/default/permissions {"permission":"get,post,put:/users/${user}/devices"}
POST /roles/default/permissions {"permission":"get,post,put:/users/${user}/**"}
POST /roles/default/permissions {"permission":"get,post,put:/users/${user}/*"}

我已将其缩小到可能无法解决的原因:

  • 我的Apache Ant模式的问题
  • 这些集合是默认的Apigee集合,可能有严格的规则与它们相关联。
  • Apache iOS SDK的问题

有人可以提出一个模式,或者帮助我确定为什么我没有权限建立这种关系?

非常感谢 克里斯

1 个答案:

答案 0 :(得分:0)

Chris,在您设置权限后,您是否在通过电话时传递令牌?这意味着,在尝试创建连接之前,您是否已将用户登录?

如果是,则默认角色是您要使用的角色。如果不是,则Guest角色是将被调用的角色。或者,您可以创建一个新角色,然后将其分配给用户,或者您可以在用户实体上设置权限(请参阅用户部分管理门户以执行此操作)。

就使用权限而言,这个应该可以解决问题:

/设备/ **

虽然你的其他几个人也应该工作:

/用户/ * /设备/ ** /用户/ $ {用户} /设备/ **

我不知道有关此问题的任何当前待处理的错误票据。这并不意味着它不是一个错误。

要测试您使用的是正确的角色,可以为POST添加/ **,这样就可以对任何和所有端点进行POST操作。