Я не очень хорошо знаком с solr. Я успешно установил solr. Он использует веб-сервер причала. Моя версия solr - 4.10.3. Эта страница администратора не защищена паролем. Любой может получить к нему доступ. Я хочу применить paaword к solr admin. Как я это сделаю?
Как установить пароль администратора паролей Apache
Ответ 1
Для версии ниже 5
Если вы используете solr-webapp, вам нужно изменить файл web.xml и добавить следующие строки:
<security-constraint>
<web-resource-collection>
<web-resource-name>Solr Lockdown</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>solr_admin</role-name>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Solr</realm-name>
</login-config>
Для сервера Jetty вам необходимо добавить следующие строки в /example/etc/webdefault.xml
<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**</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Test Realm</realm-name>
</login-config>
Обновите файл /example/etc/jetty.xml
<Call name="addBean">
<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/realm.properties
:
admin: s3cr3t, admin-role
Имя пользователя = пароль администратора = s3cr3t. Роль имя = админ-роль
Версия Solr 5+
В последней версии Solr изменилась структура папок. Вы найдете все файлы в папке путь ниже.
{SOLR_HOME}/server/etc/jetty.xml {SOLR_HOME}/server/etc/webdefault.xml
Создайте новый файл учетных данных в {SOLR_HOME}/server/etc/realm.properties
:
admin: s3cr3t, admin-role
Для получения дополнительной информации вы можете помочь SOLR вики - документы
Ответ 2
Включить аутентификацию в solr admin, работающем с solr 6.1 и причал
Предварительное условие:
-
Версия Solr 6.1
-
Solr успешно работает в системе
-
Solr Admin работает через причал
Процесс:
1. Редактировать jetty.xml
Отредактируйте файл "server/etc/jetty.xml" Добавьте следующее, прежде чем тег Настроить завершается
<Call name="addBean">
<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>
2. Изменить webdefault.xml
Отредактируйте файл "server/etc/webdefault.xml" Добавьте следующее, прежде чем тег веб-приложения завершается
<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>core1-role</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Test Realm</realm-name>
</login-config>
Специальное примечание:
Значение, используемое в теге ролевое имя, должно быть одинаковым в "realm.properties" файле
3. Создайте новый файл "realm.properties"
Создайте файл с именем "realm.properties" в местоположении "server/etc/" и поместите нижеуказанный контент
admin: admin123,core1-role
Имя пользователя: admin
Пароль: admin123
Имя роли: core1-role
(Это должно быть таким же, как имя, используемое в теге ролевое имя в файле server/etc/webdefault.xml)
4. Заключительный шаг
Перезагрузите сервер Solr
Теперь получите доступ к Solr в вашем браузере http://localhost:8983/solr/
Вы увидите, что браузер запрашивает username
и password
. Введите username
и password
.
Ответ 3
Если вы используете tomcat,
Open [Tomcat install dir]\tomcat-users.xml for editing.
Добавьте следующие строки в элемент <tomcat-user>
и сохраните изменения (используя свое собственное имя пользователя и пароль):
<role rolename="solr_admin"/><user username="your_username" password="your_password" roles="solr_admin"/>
Откройте Tomcat install dir\webapps\solr\WEB-INF\web.xml для редактирования.
"solr" в пути - это имя экземпляра, который вы хотите защитить. Обычно это "solr", но может отличаться, если вы используете расширенную настройку.
Добавьте следующие строки в элемент <web-app>
:
<security-constraint>
<web-resource-collection>
<web-resource-name>Solr Lockdown</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>solr_admin</role-name>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Solr</realm-name></login-config>
Сохраните изменения и перезапустите Tomcat. Проверьте свои изменения, запустив новый сеанс браузера и перейдя на свой сайт, например. http://localhost:8080/solr/ Вам будут предложены учетные данные.
Если ваш файл Tomcat install dir tomcat-users.xml изменяется, тогда перейдите в файл tomcat-users.xml под серверами в Project Explorer и добавьте туда свои изменения.
Ответ 4
Как установить пароль для Solr - это боль в заднице (извините, но некоторое время вы должны назвать его как есть). Я предлагаю другое решение: Ограничьте доступ к нему с помощью iptables
.
Если вы устанавливаете Apache Solr Server, Сервер обычно будет прослушивать порт 8983. Следовательно, интерфейс администратора серверов будет доступен под:
http://YOUR_SERVERS_IP:8983/solr/
Таким образом, мы можем ограничить соединения с портом 8983 следующим образом:
iptables -A INPUT -p tcp -s localhost --dport 8983 -j ACCEPT
iptables -A INPUT -p tcp -s YOUR_SERVERS_IP --dport 8983 -j ACCEPT
iptables -A INPUT -p tcp --dport 8983 -j DROP
Это будет принимать все запросы от localhost (первая строка) и от самого IP-сервера (вторая строка), но удалять все остальные соединения (последняя строка). Вторая строка не нужна, но помогает нам легко получить доступ к интерфейсу администратора Solr. Чтобы получить доступ к интерфейсу администратора, создайте локальную машину, мы должны сначала перенести все подключения к серверу. Самый простой способ сделать это - использовать sshuttle (lazy mans VPN):
sshuttle --dns -r [email protected]_SERVERS_IP 0/0
Выполнение этой команды на локальном компьютере, откуда мы хотим получить доступ к интерфейсу администратора.
Другой вариант - использовать туннелирование ssh
с открытым ssh-клиентом:
ssh -D 1080 [email protected]_SERVERS_IP
Настройте прокси-сервер socks в своем браузере на порт 1080.
Ответ 5
Я тоже имею дело с Solr v.4.10, и это действительно раздражает. Ни одно из так называемых "решений" не работает для меня. Я закончил установку Nginx в своем поле Ubuntu и прокси: порт 8983 для докеров, где Nginx требуется пароль. Это работает для меня.
Ответ 6
Я должен только сообщить, что было решением в моем случае. На самом деле мой сайт был написан в ajax, поэтому, устанавливая passowrd, также защищайте мой сайт. Таким образом, это не решение в случае, когда solr должен использоваться открытым Интернетом. Таким образом, лучшим решением, которое руководствуется solr wiki, является использование таких прокси, как node.js, nginex и т.д., Как указано здесь
Используя node.js proxy и применяя правила iptable (как описано выше), решите мою проблему.
Ответ 7
Я смог получить эту работу. Но теперь мой запрос с solrj из моего веб-приложения заблокирован. Кто-нибудь знает, как добавить имя пользователя и пароль в solrj, используя java, чтобы получить доступ к solr? Я использовал это, но не сигару:
DefaultHttpClient httpclient1 = new DefaultHttpClient(); httpclient1.getCredentialsProvider(). setCredentials (AuthScope.ANY, новое имя пользователяPasswordCredentials ( "themoflow", "upforcoffeeat8AM" )); DefaultHttpClient httpclient2 = new DefaultHttpClient(); httpclient2.getCredentialsProvider(). setCredentials (AuthScope.ANY, новое имя пользователяPasswordCredentials ( "USERNAME", "PASSWORD" ));
SolrClient serverInActive = new HttpSolrClient(Constants.SOLR_URL + core, httpclient1);
Ответ 8
Для solr 5 - см. мой ответ на https://shrib.com/1Fvi2w1AzjQoul3?v=nc