2012-05-21 65 views
2

我想发布受密码保护的http文档。
它有一个用户名和密码登录页面,然后才能访问实际文档。 我试过这样做通过HTTP将受密码保护的文档发布到Solr

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

但它只是索引登录页面。

+1

您实际上是通过curl向Solr进行身份验证,但是您需要验证您的stream.url参数,即从哪里获取文档的URL。我不认为这是可能的。 – javanna

回答

0

我的猜测是你的这个页面使用的认证方法不是curl支持开箱即用的HTTP认证方法之一。

HTTP身份验证是基本的 - 有些人可能认为是微不足道的 - 它最基本的形式基本上是不安全的(字面上,“基本”模式HTTP身份验证通过电报以纯文本格式发送用户密码,的请求标题)。我只见过它与HTTPS一起使用,即使这些日子也很罕见。

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

你的问题是,卷曲不知道任何这个。如果你使用python编程,你可能会发现requests软件包很有用(而且它的设计比卷曲更现代,可以启动)。如果你正确地调用它的HTTP API,Solr将不会在乎任何方式。