Использование Crowd Rest API

Я пытаюсь добавить 100 пользователей в группу из толпы, и я хочу автоматизировать ее, используя curl и остальные API толпы. Сначала я просто пытаюсь добавить одного пользователя в группу, а затем обновить его с помощью сценария оболочки. После этого документа я передаю команду как

curl -X POST{"name":"groupname"} -ik -u application:password-H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost/crowd/rest/usermanagement/1/user/group/direct?username=username.

Я получаю следующую ошибку.

HTTP/1.1 405 Method Not Allowed
Server: Apache-Coyote/1.1
X-Embedded-Crowd-Version: Crowd/2.8.3
X-Crowd-User-Management-Version: 1.4
Set-Cookie: JSESSIONID=17490A660F9A2267B378CD767CEADDF8; Path=/crowd/; Secure; HttpOnly
Allow: HEAD,DELETE,POST,GET,OPTIONS
X-Content-Type-Options: nosniff
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 1013
Date: Mon, 29 Jun 2015 02:56:15 GMT

К вашему сведению: я использую приложение для аутентификации против толпы с помощью отдыха. Пожалуйста, подскажите, что мне нужно делать и как мне делать.

PS Мне также нужно подумать о том, чтобы добавить толпы групп в толпу.

1 ответ

Вам не хватает пробела между POST и вашими данными.

Для размещения данных используйте:

-d, --data

(HTTP) Отправляет указанные данные в запросе POST на сервер HTTP так же, как браузер, когда пользователь заполняет HTML-форму и нажимает кнопку отправки. Это заставит curl передавать данные на сервер с помощью application-type /x-www-form-urlencoded. Сравните с -F, --form.

Так что команда должна быть:

curl -X POST -d {"name":"groupname"} -ik -u application:password -H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost/crowd/rest/usermanagement/1/user/group/direct?username=username

Из толпы документов,

Аутентификация Для доступа ко всем ресурсам (используя любой метод) требуется, чтобы клиент проходил аутентификацию с помощью обычной аутентификации. См. RFC 2617.

Ваша среда должна сохранять файлы cookie, установленные сервером Crowd, и повторно передавать их при последующих вызовах, в противном случае Crowd придется повторно аутентифицировать приложение при каждом вызове REST.

Поэтому сначала подтвердите свою личность и сохраните куки (запишите параметр --cookie-jar)

curl -i -u application_name:application_password --data '{"value": "my_password"}' http://localhost:8095/crowd/rest/usermanagement/1/authentication?username=my_username --header 'Content-Type: application/json' --header 'Accept: application/json' --cookie-jar cookies.txt

Таким образом, в соответствии с документацией по последующим вызовам используйте куки (используя параметр --cookie)

curl -X POST -d {"name":"groupname"} -ik -u application:password -H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost/crowd/rest/usermanagement/1/user/group/direct?username=username --cookie cookies.txt
Другие вопросы по тегам