我想在 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 中的安全身份验证和授权工作。