tomcat - 限制 Solr 数据导入到本地主机,但允许从任何地址进行选择

标签 tomcat solr

我目前在同一个本地网络上有 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/

相关文章:

postgresql - java.lang.ClassNotFoundException : org. postgresql.Driver postgresql ubuntu 问题

maven - 如何使用 NetBeans 将对 Maven Web 应用程序资源 (WAR) 项目的额外依赖项添加到 Maven 存储库?

linux - 重定向 apache-tomcat 不通过 h​​ttps 呈现

java - 使用 Eclipse Java EE 运行 Servlet

java - 在 Ubuntu 12.04 上更新 Java 后 Solr 无法启动

Solr 查询 - HTTP 错误 404 未定义字段文本

java - elasticsearch 与 solr - 用于自定义全文搜索系统

solr - 根据特定字段查询一个文档或另一个文档

java - 使用 Lucene 的 StandardTokenizer 时保留标点符号

java - 我可以向 Solr 服务器动态提供 solrconfig.xml 和 schema.xml 文件吗?