-
Autoryzacja w Apache Solr
Jakiś czas temu pisałem o narzędzie Solr od Apache, które bardzo usprawnia wyszukiwanie zasobów tj. np. produktów na naszych stronach/sklepach. Ważne jest aby zabezpieczyć dostęp do naszej „turbo-wyszukiwarki”, aby ktoś się nie dostał do jej zasobów. Zacznijmy 🙂
Edytujemy następujący plik „/opt/solr/server/etc/jetty.xml”. Dopisujemy na końcu wskazanego pliku, ale przed tagiem
"</Configure>"
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">centos solr server</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
<Set name="refreshInterval">0</Set>
</New>
</Arg>
</Call>Następnie edytujemy „/opt/solr/server/etc/webdefault.xml”. Dodajemy na końcu pliku, ale przed tagiem
"</web-app>"
<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>centos solr server</realm-name>
</login-config>
W powyższych plikach wartość „name” oraz „realm-name” muszę być takie same.
Następnie tworzymy plik „/opt/solr/server/etc/realm.properties”
przemek: admin123456,core1-role
User Name: przemek
Password: admin123456
Role name: core1-role„Role name” musi być takie same jak tag „role-name” w pliku „/opt/solr/server/etc/webdefault.xml”.
Lokalizacja aplikacji Solr może być inna w zależności gdzie została zainstalowana (proponowana przez nas to „/opt/solr/”). Po wykonaniu wszystkich powyższych operacji, restartujemy Solr-a. Aby sprawdzić czy działa nasza autoryzacja, najprościej jest wpisać w przeglądarce jej adres np. http://nasza-strona.pl:8983/solr/. Powinniśmy ujrzeć okno logowania, podobne do tego stosowanego przy Basic Auth Apache.