Apache 为假人设置基本身份验证Solr 5.3.1

Apache 为假人设置基本身份验证Solr 5.3.1,apache,solr,jetty,reverse-proxy,centos7,Apache,Solr,Jetty,Reverse Proxy,Centos7,好的,所以我不是服务器专家,但我需要弄清楚如何为我们的solr服务器管理页面设置身份验证。我尝试按照此处概述的步骤进行操作: 我甚至不能完成第一步,上传JSON文件。我创建了JSON文件,但是当我上传它时,在尝试运行zkcli.sh时,我得到了一个“command not found”错误。我需要先和Zookeeper建立一些东西才能运行它吗?我应该检查什么 编辑:我在线学习了一些教程,并做了以下工作: 1) 通过添加以下行将jetty-http.xml设置为localhost(将主机更改为1

好的,所以我不是服务器专家,但我需要弄清楚如何为我们的solr服务器管理页面设置身份验证。我尝试按照此处概述的步骤进行操作:

我甚至不能完成第一步,上传JSON文件。我创建了JSON文件,但是当我上传它时,在尝试运行zkcli.sh时,我得到了一个“command not found”错误。我需要先和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路径中更改为正确路径):


AuthName“安全区域”
AuthType Basic
AuthUserFile/path/to/htpasswd/.htpasswd需要有效的用户
ProxyPass/solrhttp://localhost:8983/solr 
ProxyPassReverse/solrhttp://localhost:8983/solr 
3) 我通过htpasswd设置了密码。 4) 我重新启动了服务器。我刷新了solr页面,什么也没有;这是一个断开的链接

我做错了什么


(不幸的是,每次我这样做时,solr核心也会消失并拒绝加载。不过这是另一个问题,我认为这与权限有关,但似乎不是…)

您可以按照以下步骤在solr中完成基本的身份验证工作。 假设您有ubuntu操作系统,并使用安装脚本安装了服务器

第一步。sudo vi/opt/solr/server/etc/jetty.xml 在“”标记之前的文件末尾添加以下代码


用户名和密码存储在以下文件/opt/solr/server/etc/realm.properties

感谢您的回复,非常感谢。我们在CentOS 7上运行solr 5.3.1。我找到了这两个文件,这看起来更简单,但是“在”“标记之前”是指在关闭Configure标记()之前吗?您可以简单地将其附加到文件的末尾。您好,我花了一段时间才回到这一点,但现在我有一个新的相关问题。面板的身份验证工作正常,但现在Omeka(我运行的php应用程序是为了使用solr)在尝试添加或编辑文件时在内部产生此错误:异常“Apache_solr_HttpTransportException”,在[domainname]/httpdocs/Omeka/plugins/SolrSearch/lib/solr php client/Service.php:364中显示消息“401”Status:Unauthorized”。第364行写着:抛出新的Apache_Solr_HttpTransportException($solrResponse);FWIW,我和一个更熟悉Omeka的人谈过,那个人说更改应用程序的代码来处理基本身份验证并不容易(至少不容易),但补充说“使用Apache作为Solr的反向代理,为代理路径设置基本身份验证,并通过防火墙阻止对Solr端口的访问”——你知道我会怎么做吗?我正在网上搜索教程…另一个更新。我在线学习了一些教程,并做了以下工作:1)通过添加以下行将jetty-http.xml设置为localhost(将主机更改为127.0.0.1):。2) 我还向apache配置文件添加了以下内容:AuthName“Secure Area”AuthType Basic AuthUserFile/path/to/htpasswd/.htpasswd需要有效的用户ProxyPass/solr ProxyPassReverse/solr 3)我通过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 
<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>
<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>
USERNAME: PASSWORD,core1-role