mac Solr开启用户名密码访问

mac Solr开启用户名密码访问

solr在5.0版本后,不再提供war包部署的方式,取而代之的内置的jetty服务。我们可以使用jetty的方式来限制web访问。


(1)在/usr/local/Cellar/solr/7.3.0/server/solr-webapp/webapp/WEB-INF/web.xml中增加以下字段:

<security-constraint>

<web-resource-collection>

<web-resource-name>solr</web-resource-name>

<url-pattern>/</url-pattern>

</web-resource-collection>

<auth-constraint>

<role-name>solr_admin</role-name>

<role-name>admin</role-name>

</auth-constraint>


<login-config>

<auth-method>BASIC</auth-method>

<realm-name>Solr Admin</realm-name>

</login-config>

</security-constraint>


如下图所示:

其中BASIC就是验证用户名密码的方式。



(2)在/usr/local/Cellar/solr/7.3.0/server/etc/jetty.xml中增加Call标签:


<Call name="addBean">

<Arg>

<New >

<Set name="name">Solr Admin</Set>

<Set name="config">

/usr/local/Cellar/solr/7.3.0/server/etc/realm.properties

</Set>

</New>

</Arg>

</Call>


如下图所示:

config中指定密码文件的路径。



(3)在上述对应目录下建立realm.properties文件,就是密码文件:

admin:123456,solr_admin


如下图所示:

其中admin是用户名,123456是密码,solr_admin是角色role。



(4)然后重启solr即可,第一次就需要输入用户名 密码。

推荐阅读