Блог экспериментатора инженера-разработчика: Infanty.
Я пишу how-to статьи на редкие темы или статьи обзоры - для себя и тех кто со мной работает.
Блог существует при поддержке: "Оккупационных сил Марса".

Любой желающий может получить доступ к Apache Solr пройдя по адресу http://x.x.x.x/:8983/solr/ и поменять его настройки, если не позаботится о настройке доступа к нему - на основании пароля. Для этого добавим в файл: "/opt/solr/etc/jetty.xml", следующие строки:

 <Call name="addBean">
  <Arg>
    <New class="org.eclipse.jetty.security.HashLoginService">
      <Set name="name">Solr</Set>
      <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
      <Set name="refreshInterval">0</Set>
    </New>
  </Arg>
</Call> 

Аутентификация будет обязательна для любых запросов пока пользователь не авторизуется. Авторизация хранится в сессии. Доступ может быть разделён как по ролям так и по функционалу к которому разрешён доступ.

Добавим в в файл "/opt/solr/etc/webdefault.xml" следующие строки:

 <security-constraint>
  <web-resource-collection>
    <web-resource-name>Solr</web-resource-name>
    <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>solr-search-role</role-name>
  </auth-constraint>
</security-constraint>

<login-config>
  <auth-method>BASIC</auth-method>
  <realm-name>Solr</realm-name>
</login-config> 

После чего создадим файл: "/opt/solr/etc/realm.properties" и укажем в нём: логин, пароль и роль для доступа (аналогичная роли из файла webdefault.xml, секции: role-name), по шаблону: "<username>: <password>, <role>". Например: "user_name: password, solr-search-role". При необходимости можно создать несколько пользователей с различными ролями и правами доступа.

В заключении ограничиваем права доступа к файлу: "/opt/solr/etc/realm.properties", набрав в консоли:

 sudo chmod 640 /opt/solr/etc/realm.properties && sudo chown solr:solr /opt/solr/etc/realm.properties