私はsolrにあまり詳しくありません。 solrを正常にインストールしました。それはjettyウェブサーバーを使用しています。私のsolrバージョンは4.10.3です。管理ページはパスワードで保護されていません。誰でもアクセスできます。 solr adminにpaawordを適用したい。どうやってやるの?
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
ユーザー名=adminパスワード=s3cr3t。ロール名= admin-role
Solrバージョン5 +
最新のSolrバージョンでは、フォルダー構造が変更されました。すべてのファイルは、folder-pathの下にあります。
{SOLR_HOME} /server/etc/jetty.xml {SOLR_HOME} /server/etc/webdefault.xml
{SOLR_HOME}/server/etc/realm.properties
で新しい資格情報ファイルを作成します。
admin: s3cr3t, admin-role
詳細については、solr wiki docs をご覧ください。
solr 6.1およびjettyで実行されているsolr adminで認証を有効にします
前提条件:
Solrバージョン6.1
Solrはシステムで正常に実行されています
Jettyを実行するSolr Admin
プロセス:
1。 jetty.xmlを編集します
ファイル「server/etc/jetty.xml」を編集しますConfigureタグが終了する前に以下を追加します
<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」を編集します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>Test Realm</realm-name>
</login-config>
特記事項:
role-nameタグで使用される値は、「realm.properties」ファイル
3。新しいファイル「realm.properties」を作成します
ロケーション「server/etc /」に「realm.properties」という名前のファイルを作成し、以下のコンテンツを配置します
admin: admin123,core1-role
ユーザー名:admin
パスワード:admin123
ロール名:core1-role
(これはserver/etc/webdefault.xml”ファイルのrole-nameタグで使用される名前と同じである必要があります)
4。最終ステップ
Solrサーバーを再起動します
ブラウザでSolrにアクセスしますhttp:// localhost:8983/solr /ブラウザがusername
を要求していることがわかります。 password
。 username
とpassword
を入力します。
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インストール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インストールディレクトリTomcat-users.xmlファイルが変更されている場合は、プロジェクトエクスプローラーの[サーバー]の下のTomcat-users.xmlファイルに移動し、そこに変更を追加します。
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(1行目)およびサーバーのIP自体(2行目)からのすべての要求が受け入れられますが、他のすべての接続(最後の行)はドロップされます。 2行目は必須ではありませんが、Solrの管理インターフェースへの簡単なアクセスを見つけるのに役立ちます。ローカルマシンから管理インターフェイスにアクセスするには、最初にすべての接続をサーバーに転送する必要があります。これを行う最も簡単な方法は、sshuttle(lazy mans VPN)を使用することです:
sshuttle --dns -r root@YOUR_SERVERS_IP 0/0
管理インターフェースにアクセスしたいローカルマシンでこのコマンドを実行します。他のオプションは、開いているsshクライアントでssh
トンネリングを使用することです:
ssh -D 1080 root@YOUR_SERVERS_IP
ブラウザでソックスプロキシをポート1080に設定します。
私もSolr v.4.10を扱っていますが、これは本当に面倒です。いわゆる「解決策」のどれも私にはうまくいきません。最終的に、UbuntuボックスにNginxをインストールし、Nginxがパスワードを要求するdockerへの:8983ポートをプロキシしました。これは私のために動作します。