0

我想在 SOLR 5.3.1 中运行安全身份验证和授权,并将 security.json 文件放在 solr 根文件夹中,但在运行 CLI 时如下所示:

/cygdrive/c/xampp/htdocs/solr$ server/scripts/cloud-scripts/zkcli.bat -zkhost localhost:8983 -cmd putfile  /security.json security.json

我收到以下问题:

WARN  - 2015-10-29 15:39:01.656; org.apache.zookeeper.ClientCnxn$SendThread;      Session 0x0 for server frontend.dev/127.0.0.1:8983, unexpected error, closing socket connection and attempting reconnect
java.io.IOException: Packet len1213486160 is out of range!
    at org.apache.zookeeper.ClientCnxnSocket.readLength(ClientCnxnSocket.java:112)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:79)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)

我浏览了以下文章:

Zookeeper CLI 失败 - IOException Packet <len12343123123> 超出范围

我按照说明增加了缓冲区大小。我为 zkcli.bat 增加了它,如下所示。命令如下:

zkcli.bat

@echo off
REM You can override pass the following parameters to this script:
REM 

set JVM=java

REM  Find location of this script

set SDIR=%~dp0
if "%SDIR:~-1%"=="\" set SDIR=%SDIR:~0,-1%
"%JVM%" -Dlog4j.configuration="file:%SDIR%\log4j.properties" -Djute.maxbuffer="20213486160" -classpath "%SDIR%\..\..\solr-webapp\webapp\WEB-INF\lib\*;%SDIR%\..\..\lib\ext\*" org.apache.solr.cloud.ZkCLI %*

即使我在 server\solr 下的 zoo.cfg 中设置了 maxClientCnxns、minSessionTimeout 和 maxSessionTimeout :

动物园.cfg

tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=500
minSessionTimeout=100000
maxSessionTimeout=200000

security.json 文件如下:

{
"authentication":{
"class":"solr.BasicAuthPlugin",
"credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0=     Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}
},
"authorization":{
"class":"solr.RuleBasedAuthorizationPlugin",
"user-role":{"solr":"admin"},
"permissions":[{"name":"security-edit",
              "role":"admin"}]
}}

我用谷歌搜索但没有得到任何解决方案。请协助我需要做些什么来使 SOLR 中的安全身份验证和授权工作。

4

1 回答 1

1

我遇到了同样的问题,但就我而言,solr 6 是在正常模式下运行而不是在集群模式下运行。要在集群模式下运行 solr,您需要 -c 标志。然后 zookeeper 在端口 911 上运行。

./solr status

看看你是否有一个 Zookeeper 在运行以及在哪个端口

于 2016-10-06T09:22:30.073 回答