Я новичок в Solr, и я изучал это в течение последних дней и половины и, наконец, поворачивался сюда.
У меня запущен и запущен сервер Solr, и мой администратор сети настроил правило в брандмауэре, чтобы мы могли получить к нему доступ для запросов из моего приложения JavaScript. Это работает. Проблема в том, что страницы администрирования Solr полностью открыты для всего мира, и я пробовал все, как описано в разных сообщениях, за исключением метода ZooKeeper, который я действительно не хочу пытаться. ZooKeeper и SolrCloud.
Ссылка: http://muddyazian.blogspot.com/2013/11/how-to-require-password-authentication.html и некоторые другие
Что я сделал, это изменить jetty.xml в /opt/solr/server/etc и добавил это
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Solr Admin Access</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
<Set name="refreshInterval">0</Set>
</New>
</Arg>
</Call>
Затем я добавил в web.xml в /opt/solr/server/solr-webapp/webapp/WEB-INF конфигурацию ниже
<security-constraint>
<web-resource-collection>
<web-resource-name>Solr authenticated application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Solr Admin Access</realm-name>
</login-config>
то я создал файл realm.properties hashed пароль в соответствии с этим сообщением Пароль администратора /SOLR Admin Panel
Solr теперь безопасен, но все защищено паролем, я хочу, чтобы мои запросы были открыты, а остальные - защищены. Я попытался добавить разные шаблоны url, такие как /admin/ *,/mycollection/dataimport/* и т.д., Но ни один из них не влияет на то, что запрос также защищен. Ссылка https://gist.github.com/jstrassburg/9777027