2

我想发布一个受密码保护的 http 文档。
在您访问实际文档之前,它有一个用户名和密码登录页面。我试着这样做

curl 
 -u username:password 
 "http://localhost:8983/solr/update/extract?literal.id=doc900&commit=true" 
 -F stream.url=http://somewebsite.com/docs/DOC2609

但它只索引登录页面。

4

1 回答 1

0

我的猜测是,您的此页面使用的身份验证方法不是 curl 开箱即用支持的 HTTP 身份验证方法之一。

HTTP 身份验证是基本的——有些人可能会说是微不足道的——而且它最基本的形式从根本上是不安全的(字面意思是,“基本”模式 HTTP 身份验证通过网络以纯文本形式发送用户的密码,作为请求标头之一)。我只见过它与 HTTPS 结合使用,即使是现在也很少见。

通常避免使用 HTTP 身份验证,而支持通过 HTTPS 的 HTTP PUT 或 POST 请求,通常通过某种跨站点请求伪造 (CSRF) 预防措施或 OAUTH2 策略(通常将问题推迟到身份验证代理的实现)来加强)。

你的问题是,curl 对此一无所知。如果您使用 python 编程,您可能会发现该requests软件包很有帮助(并且在其启动设计中比 curl 更现代)。Solr 不会在意任何一种方式,如果您正确调用它的 HTTP API。

于 2012-05-21T22:20:49.850 回答