web-dev-qa-db-ja.com

Apache Solrの管理者パスワードを設定する方法

私はsolrにあまり詳しくありません。 solrを正常にインストールしました。それはjettyウェブサーバーを使用しています。私のsolrバージョンは4.10.3です。管理ページはパスワードで保護されていません。誰でもアクセスできます。 solr adminにpaawordを適用したい。どうやってやるの?

21
Shafiq

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 をご覧ください。

23
ManojP

solr 6.1およびjettyで実行されているsolr adminで認証を有効にします

前提条件:

  1. Solrバージョン6.1

  2. Solrはシステムで正常に実行されています

  3. 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を要求していることがわかります。 passwordusernamepasswordを入力します。

enter image description here

24
Suman-PHP4U

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ファイルに移動し、そこに変更を追加します。

6
ThmHarsh

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に設定します。

4
user5950

私もSolr v.4.10を扱っていますが、これは本当に面倒です。いわゆる「解決策」のどれも私にはうまくいきません。最終的に、UbuntuボックスにNginxをインストールし、Nginxがパスワードを要求するdockerへの:8983ポートをプロキシしました。これは私のために動作します。

0
user2752286

私の場合の解決策を教えてください。実際、私のWebサイトはajaxで書かれているため、passowrdを設定するとWebサイトも保護されます。したがって、solrをオープンインターネットで使用する必要がある場合の解決策ではありません。そのため、 solr wiki に導かれた最善の解決策は、指定されたようにnode.js、nginexなどのプロキシを使用することです ここ

Node.jsプロキシを使用し、iptableルールを適用すると(上記のガイドを参照)、問題が解決します。

0
Shafiq