我正在尝试将100个用户添加到群组中,我希望使用curl和crowd的rest api自动化它。起初我只是尝试将一个用户添加到一个组,然后使用shell脚本进行审核。在this document之后,我将命令作为
传递ViewControler().popUpView.hidden = true
我收到以下错误。
EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP, subcode=0x0)
仅供参考:我正在使用一个应用程序来通过休息对人群进行身份验证。请建议我需要做什么以及我该怎么做。
P.S。我还需要弄清楚是否也会挤出群体。
答案 0 :(得分:2)
您在POST和数据之间缺少空格。
发布数据使用:
-d, - data
(HTTP)将POST请求中的指定数据发送到HTTP服务器, 与用户填写HTML时浏览器的操作方式相同 表单并按下提交按钮。这将导致卷曲通过 使用content-type将数据发送到服务器 应用程序/ x-WWW窗体-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
来自Crowds Docs,
身份验证访问所有资源(使用任何方法)都需要 客户端通过基本身份验证进行身份验证。参见RFC 2617。
您的环境必须保留Crowd服务器设置的Cookie 在随后的呼叫中重新发送它们,否则Crowd必须这样做 在每次REST调用时重新验证应用程序。
首先验证你的自我并存储cookie,(记下--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(使用--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