Администратор Apigee - не может создать соответствующие разрешения пользователя

Я использую веб-портал администрирования Apigee BaaS и Apigee iOS SDK, пытаясь создать соответствующий шаблон Apache Ant, чтобы позволить мне создать связь между объектом пользователя и объектом устройства.

По умолчанию всякий раз, когда вы создаете пользователя с помощью входа в Facebook, уже существует связь между этими двумя коллекциями (/users и /devices). Но всякий раз, когда я получаю запрос cURL 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

Может ли кто-нибудь предложить шаблон или помочь мне определить, почему у меня нет разрешений на создание этих отношений?

Большое спасибо Крис


person Chris Rogers    schedule 05.11.2014    source источник


Ответы (1)


Крис, после того, как вы установили разрешение, вы передаете токен со своими звонками? Это означает, что вы вошли в систему перед попыткой создать соединение?

Если это так, то вы хотите использовать роль по умолчанию. Если нет, то будет вызвана роль гостя. Кроме того, вы можете создать новую роль, а затем назначить ее пользователю, или вы можете установить разрешения для объекта пользователя (для этого см. Административный портал раздела пользователей).

Что касается того, какое разрешение использовать, это должно помочь:

/устройства/**

хотя некоторые из ваших других также должны работать:

/users/*/devices/** /users/${user}/devices/**

Я не знаю ни одного ожидающего рассмотрения сообщения об ошибке, связанного с этой проблемой. Это не значит, что это не ошибка.

Чтобы проверить, что вы используете правильную роль, вы можете добавить /** для POST, что должно разрешить операции POST для любых и всех конечных точек.

person rockerston    schedule 05.11.2014
comment
Привет, рокерстон! Да, на данный момент пользователь вошел в систему с помощью Facebook, и мы также передаем токен при каждом вызове. В настоящее время все пользователи помещаются в группу, которой назначается роль по умолчанию, к которой все привязаны эти шаблоны. Это неправильно? - person Chris Rogers; 05.11.2014
comment
Вроде, как бы, что-то вроде. Все пользователи получат роль по умолчанию, независимо от того, назначите ли вы эту роль группе. Для этой цели вам нужно очистить роль по умолчанию и создать новую. - person rockerston; 06.11.2014
comment
Спасибо, рокерстон, я попробую и вернусь к вам. - person Chris Rogers; 06.11.2014
comment
Эй, Рокерстон, спасибо за ваше предложение, но я создал новую роль, назначил ее своей группе, но, к сожалению, она все еще не работает; Мне до сих пор не предоставлен доступ POST к этим двум коллекциям. Я дважды проверил и могу подтвердить, что пользователь вошел в систему в этот момент, и токен отправляется в каждом запросе. У вас есть идеи? - person Chris Rogers; 10.11.2014