Ограничить импорт данных Solr на localhost, но разрешить выбор с любого адреса - PullRequest
2 голосов
/ 13 марта 2012

В настоящее время у меня есть две машины в одной локальной сети - одна с Tomcat 7 и Solr 3.5, а другая с Apache и PHP.Мой PHP-код получает результаты поиска через solrservername: 8080 / solr / corename / select? ..., и я обновляю индекс, нажимая вручную ... / dataimport? ...

Как я могу ограничить доступ кURL-адрес dataimport (желательно, разрешив доступ к нему только с локального хоста), не затрагивая выбранный URL?Чтобы уточнить, я бы предпочел не связываться с HTTPS и не добавлять HTTP-аутентификацию, если это возможно.

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Я могу ошибаться, но похоже, что нет способа ограничить доступ, как вы хотите, без использования прокси.Вы можете взглянуть на Tomcat Security FAQ и на ссылки, по которым не представляется возможным указать шаблон URL при разрешении определенного ip.

Параметры настройки Solrза прокси-сервером Apache и обладайте всей необходимой гибкостью, в противном случае вы можете использовать простую аутентификацию http (я знаю, вы написали, что не хотите, но обещаю, что это довольно просто!) для URL-адреса импорта данных, изменяющего solr web.xmlвот так:

<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"/>
0 голосов
/ 13 марта 2012

Просто представление о том, что я обычно делаю в таких случаях: на машине Solr вы можете установить брандмауэр, блокирующий все входящие вызовы на порт: 80, и настроить обратный прокси-сервер (например, сервер Apache), чтобы перенаправлять все вызовы, нажимая solrservername / solr/ corename / select? * to solrservername: 8080 / solr / corename / select? **.Остальные будут доступны только локально.

Более того, в безопасности Solr вы можете ограничить доступ к серверу на основе IP-адреса, добавив следующее в server.xml

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1″/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...