Поставил Solr на сервер. Всё работает, всё ищет, но смущает, что доступ в админку может получить любой по адресу http://sitename.ru:8983/solr
В итоге закрыл порт через firewall, но может есть более элегантное решение — организовать доступ по паролю? Кто подскажет как сделать? Версия Solr 4.3.1
Комментарии
Нашел решение?
Хорошо, что напомнили.
В общем универсального метода не смог нарыть. Можно просто закрыть доступ через iptables
iptables -A INPUT -p tcp -s localhost --dport 8983 -j ACCEPT
iptables -A INPUT -p tcp --dport 8983 -j DROP
Вот как это делается:
- solr 4.6.0 (запускается в Jetty - самый простой вариант, который предлагается в руководстве)
Редактируем файл example/etc/jetty.xml - вписываем туда следующий код (взято отсюда http://wiki.eclipse.org/Jetty/Tutorial/Realms)
<Arg>
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Test Realm</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
<Set name="refreshInterval">0</Set>
</New>
</Arg>
</Call>
Теперь открываем на редактирование example/etc/webdefault.xml и правим, как показано ниже (взято отсюда http://knackforge.com/blog/sivaji/how-protect-apache-solr-admin-console)
<security-role>
<role-name>user</role-name>
</security-role>
<login-config>
<realm-name>Auth</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>File Upload</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<!-- <security-constraint>
<web-resource-collection>
<web-resource-name>Disable TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
-->
</web-app>
Теперь создаём файл example/etc/realm.properties
И вписываем в него следующее (подробности можно посмотреть тут http://wiki.eclipse.org/Jetty/Tutorial/Realms)
Теперь перезапустить solr.
да нечто подобное я находил в буржуйнете, но у меня без jetty все запущено и проверить не мог. Тем не менее спасибо, на будущее пригодится
Судя по номеру порта http://sitename.ru:8983/solr именно Jetty.
А как ты запускаешь? Так java -jar start.jar? Или tomacat+solr?
java -jar start.jar
Ну значит этот способ будет работать.
наконец то довелось проверить в работе вашу версию
все получилось отлично. спасибо, за помощь
К админке так доступ закроете. Вот только получите проблему в самом Друпал. Перестанет работать Solr API. Будет бить вам ошибку, что доступ запрещен.