好的,所以我不是服务器大师,但我需要弄清楚如何为我们的solr服务器管理页面设置身份验证。我正在尝试按照此处列出的步骤进行操作:
https://lucidworks.com/2015/08/17/securing-solr-basic-auth-permission-rules/
我甚至无法完成第一步,上传JSON文件。我创建了JSON文件,但是当我上传它时,尝试运行zkcli.sh时出现“找不到命令”错误。我是否需要首先使用Zookeeper进行设置以使其运行?我该怎么检查?
编辑:我在线学习了一些教程,并做了以下工作:1)通过添加以下行将jetty-http.xml设置为localhost(将主机更改为127.0.0.1):
<Set name="Host"><SystemProperty name="jetty.host" default="127.0.0.1"/></Set>
2)我还在apache配置文件中添加了以下内容(obv更改为htpasswd路径中的正确路径):
<Location /solr >
AuthName "Secure Area"
AuthType Basic
AuthUserFile /path/to/htpasswd/.htpasswd require valid-user
</Location>
ProxyPass /solr http://localhost:8983/solr
ProxyPassReverse /solr http://localhost:8983/solr
3)我通过htpasswd设置了密码。 4)我重新启动了服务器。我刷新了solr页面,没有任何内容;这是一个破碎的链接。
我做错了什么?
(不幸的是,每当我这样做时,solr核心也会消失并拒绝加载。这是另一个问题,我认为这与权限相关但似乎不是......)
答案 0 :(得分:0)
您可以按照以下步骤在solr中获取基本身份验证工作。 假设你有ubuntu操作系统并使用安装脚本安装服务器。
步骤1。 sudo vi /opt/solr/server/etc/jetty.xml 在&#34;&#34;之前将以下代码添加到文件末尾标签
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Test Realm</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
<Set name="refreshInterval">0</Set>
</New>
</Arg>
</Call>
第二步。 sudo vi /opt/solr/server/etc/webdefault.xml 在&#34;&#34;之前将以下代码添加到文件末尾标签
<security-constraint>
<web-resource-collection>
<web-resource-name>Solr authenticated application</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>core1-role</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Test Realm</realm-name>
</login-config>
步骤3。创建文件&#34; /opt/solr/server/etc/realm.properties"具有以下内容:
USERNAME: PASSWORD,core1-role
用户名和密码存储在以下文件/opt/solr/server/etc/realm.properties
中