我们使用CURL在Web应用程序上自动执行某些管理任务,该应用程序对域中的所有站点使用SSO cookie。最近,我们自动化的应用程序的身份验证系统发生了变化。没关系。我们更改了CURL脚本以符合新的身份验证。我们能够获得饼干并保存到罐子里。
问题在于保存cookie的方式。我查看了Google Chrome和Mozilla Firefox中的标头以及响应标头与我在CURL中看到的相同。但是,cookie jar中的cookie不会以可以发送到域中子网站的方式保存cookie。
CURL示例如下:
curl -c mycookie“https://login.example.com” - d loginUID = myusername -d loginPWD = mypassword
它保存的格式是:
login.example.com FALSE / TRUE SSOCookie automatedvalue
如果我们手动将cookie更改为:
,则子网站将使用cookie.example.com TRUE / TRUE SSOCookie automatedvalue
我不确定为什么会这样保存cookie。
有谁知道会导致CURL保存cookie的原因是什么?或者,除了手动/编写脚本以进行整个域的更改之外还有其他工作吗?
注意:当我在设置cookie时使用-v。它说*为域login.cat.com
重新插入cookie SSOCookie“uniquecookieid”谢谢,
答案 0 :(得分:8)
花了两周多的时间后,我终于找到了解决方案。未设置cookie的原因是服务器检查以查看请求的来源。在curl命令中,我在站点的域中添加了一个--referer。
curl -c mycookie“https://login.example.com” - d“loginUID = myusername”-d“loginPWD = mypassword”--referer“https://login.example.com”
cookie jar现在包含一个可用于发送到服务器的cookie。