我目前在同一个本地网络上有 2 台机器 - 一台装有 Tomcat 7 和 Solr 3.5,另一台装有 Apache 和 PHP。我的 PHP 代码通过 solrservername:8080/solr/corename/select?... 获取搜索结果,我通过手动点击 .../dataimport?... 来更新索引
如何在不影响选择 URL 的情况下限制对数据导入 URL 的访问(最好只允许从本地主机访问它)?澄清一下,如果可能的话,我宁愿不使用 HTTPS 或添加 HTTP 身份验证。
最佳答案
我可能是错的,但看起来没有办法在不使用代理的情况下限制访问。你可以自己看看 Tomcat Security FAQ和引用的链接,似乎不可能在允许特定 ip 的同时指定 url-pattern。
选项是在 Apache 代理后面配置 Solr 并具有您需要的所有灵 active ,否则您可以使用简单的 http 身份验证(我知道你写过你不想这样做,但它非常简单,我保证!)像这样修改 solr web.xml
的数据导入 url:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>DataImport protection</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>DataImport</web-resource-name>
<url-pattern>/core/dataimport/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>solradmin</role-name>
</auth-constraint>
</security-constraint>
和 tomcat-users.xml
(在 $CATALINA_HOME/conf
中)像这样:
<role rolename="solradmin"/>
<user username="user" password="pass" roles="solradmin"/>
关于tomcat - 限制 Solr 数据导入到本地主机,但允许从任何地址进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9676753/