У меня установлен экземпляр Apache Solr в Glassfish, и я использую этот экземпляр Solr из кода Java через Solrj .Дело в том, что я хочу ограничить доступ к Solr, чтобы только этот код Java мог получить к нему доступ (код мог запускаться с разных IP-адресов).
Моей первой мыслью было изменение web.xml
моего развернутого экземпляра Solr для добавления базовой аутентификации с использованием файловых областей Glassfish, поскольку я использовал это для ограничения доступа к интерфейсу REST в другом проекте.Поэтому я добавил следующие строки в Solr web.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>Secure</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>HEAD</http-method>
<http-method>PUT</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<auth-constraint>
<description>has to be a USER</description>
<role-name>USERS</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>userauth</realm-name>
</login-config>
<security-role>
<role-name>USERS</role-name>
</security-role>
Но почему-то эта вещь не работает для доступа к Solr.Я не получаю диалог аутентификации, который довольно странный, потому что он работал в другой настройке.
В целом, является ли этот способ защиты экземпляра Solr хорошим подходом или я должен попробовать другой?На странице Solr Security говорится о брандмауэре экземпляра Solr.Я не администратор Linux, но я думаю, что iptables будет возможным решением, и есть несколько хороших ответов на serverfault (например, this ).
Что делатьты думаешь?