为Solr基本身份验证添加用户时出错

时间:2017-04-13 08:56:07

标签: solr

当我尝试使用curl

中的以下方法为Solr基本身份验证添加用户时
curl --user user:password http://localhost:8983/solr/admin/authentication -H 'Content-type:application/json' -d '{
  "set-user": {"tom" : "TomIsCool" ,
           "harry":"HarrysSecret"}}'

我收到以下错误:

{
  "responseHeader":{
"status":400,
"QTime":0},
 "error":{
"metadata":[
  "error-class","org.apache.solr.common.SolrException",
  "root-error-class","org.apache.solr.common.SolrException"],
"msg":"No contentStream",
"code":400}}
curl: (3) [globbing] unmatched brace in column 1
枩]?V7`-{炘9叡 t肤 ,? E'qyT咐黣]儎;衷 鈛^W褹?curl: (3) [globbing] unmatched cl
ose brace/bracket in column 13

这个错误意味着什么,我们应该如何解决? 我在Solr 6.4.2上使用SolrCloud。

的问候,
埃德

1 个答案:

答案 0 :(得分:1)

如果您在Windows下使用curl,请is a known issue with cmd.exe's escaping of single quotes。在JSON字符串周围使用双引号(或使用cygwin,powershell等)

curl --user user:password http://localhost:8983/solr/admin/authentication -H 
    "Content-type:application/json" -d "{
       \"set-user\": {\"tom\" : \"TomIsCool\" ,
       \"harry\":\"HarrysSecret\"}}"

来自curl的“globbing”消息是curl正在做的事情而不是你想要的事情的暗示,并且请求的实际主体没有到达Solr(它抱怨没有消息体存在)。

您也可以通过在网址中使用stream.body并从浏览器发出请求来解决此问题。