设置基本认证Solr 5.3.1 for dummies

时间:2017-06-16 13:42:34

标签: apache solr jetty reverse-proxy centos7

好的,所以我不是服务器大师,但我需要弄清楚如何为我们的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核心也会消失并拒绝加载。这是另一个问题,我认为这与权限相关但似乎不是......)

1 个答案:

答案 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