Использование 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