Comment définir le mot de passe admin d'Apache solr

Je ne suis pas très familier avec solr. J'ai installé solr avec succès. C'est à l'aide de la jetée de serveur web. Ma version solr est la 4.10.3. La page d'administration n'est pas protégée par mot de passe. N'importe qui peut y accéder. Je veux appliquer un paaword sur solr admin. Comment je vais faire?

18
demandé sur f_puras 2015-01-20 14:14:46

6 réponses

Pour la version en dessous de 5

Si vous utilisez solr-webapp ensuite, vous devez modifier web.xml le fichier et ajouter ces lignes:

<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> 

Pour le serveur Jetty, vous devez ajouter les lignes ci-dessous dans /exemple/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>

mise à Jour /exemple/etc/jetty.xml le fichier

<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

nom D'utilisateur = admin mot de passe = s3cr3t. Nom du rôle = Administrateur-rôle

Solr version 5+

dans la dernière version de Solr la structure des dossiers a été changée. Vous trouverez tous les fichiers dans le chemin des dossiers ci-dessous.

{SOLR_HOME}/server/etc / jetty.XML {SOLR_HOME} / server / etc / webdefault.xml

Créer un nouveau fichier des informations d'identification domaine.propriétés

{SOLR_HOME}/server/etc/realm.properties
admin: s3cr3t, admin-role

pour plus d'info vous pouvez aider solr wiki docs

23
répondu ManojP 2018-05-22 06:46:58

Activer l'authentification dans solr admin en cours d'exécution avec solr 6.1 et jetée

Pré condition:

  1. Solr version 6.1

  2. Solr fonctionne avec succès dans le système

  3. Solr Admin cours d'exécution à travers la jetée

Processus:

1. Modifier la jetée.xml

Modifier le fichier "serveur/etc/jetty.XML" Ajouter ce qui suit avant le configurer fin de l'étiquette

<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. Editer webdefault.xml

éditer le fichier "server/etc / webdefault.XML" Ajouter ce qui suit avant le Web-app fin de l'étiquette

<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>

Remarque:

Valeur utilisée dans le nom du rôle balise doivent être même utilisé dans " realm.les propriétés" le fichier

3. Créer nouveau fichier "realm.les propriétés"

Créer un fichier nommé "royaume.les propriétés" dans l'emplacement du serveur "/etc/" et de mettre le contenu ci-dessous

admin: admin123,core1-role

Nom D'Utilisateur: admin

Mot de passe: admin 123

nom du Rôle: core1-rôle

(ceci doit être identique au nom utilisé dans nom du rôle balise dans server/etc/webdefault.xml" fichier )

4. Final Étape

redémarrez le serveur Solr

maintenant, accédez à Solr dans votre navigateur http://localhost:8983/solr/ Vous trouverez le navigateur demande username et password. Entrez le username et password.

enter image description here

23
répondu Suman-PHP4U 2017-05-29 10:39:54

Si vous utilisez tomcat,

Open [Tomcat install dir]\tomcat-users.xml for editing.

Ajouter les lignes suivantes dans le <tomcat-user> élément et enregistrer les modifications (à l'aide de votre propre nom d'utilisateur et mot de passe):

<role rolename="solr_admin"/><user username="your_username"  password="your_password"  roles="solr_admin"/>

Ouvrir le répertoire d'installation de Tomcat\webapps\solr\WEB-INF\web.xml pour l'édition. "solr" dans le chemin d'accès est le nom de l'instance que vous souhaitez sécuriser. Généralement c'est "solr", mais peut être différent si vous exécutez un programme d'installation avancée. Ajoutez les lignes suivantes dans le <web-app> élément:

<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>

enregistrez les modifications et redémarrez Tomcat. Testez vos modifications en démarrant une nouvelle session de navigateur et en naviguant sur votre site, par exemple. http://localhost:8080/solr/ vous devriez être invité à vérifier vos références.

si votre Tomcat installe dir tomcat-users.xml est un fichier modifié ensuite allez sur Tomcat-users.fichier xml sous serveurs dans Project Explorer et y ajouter vos modifications.

6
répondu ThmHarsh 2015-09-18 10:44:42

comme définir un mot de passe à Solr est une plaie (désolé, mais il faut le nommer tel quel) je propose une autre solution: restreindre l'accès à L'aide de iptables.

si vous installez Apache Solr Server habituellement le serveur écoutera sur le Port 8983. Par conséquent, l'interface d'administration des serveurs sera disponible sous:

http://YOUR_SERVERS_IP:8983/solr/

nous pouvons donc restreindre les connexions au port 8983 comme suit:

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

ceci acceptera toutes les requêtes de localhost (d'abord ligne) et de L'IP du serveur lui-même (deuxième ligne), mais supprimer toutes les autres connexions (dernière ligne). La deuxième ligne n'est pas nécessaire mais nous aide à trouver un accès facile à L'interface d'administration de Solr. Pour accéder à l'interface d'administration d'une machine locale, nous devons d'abord transmettre toutes les connexions au serveur. La façon la plus simple de le faire, est d'utiliser sshuttle (lazy mans VPN):

sshuttle --dns -r root@YOUR_SERVERS_IP 0/0

exécuter cette commande sur la machine locale, d'où nous voulons accéder à l'interface d'admin. Une autre l'option est d'utiliser ssh tunnels avec le client ssh:

ssh -D 1080 root@YOUR_SERVERS_IP

configurer un proxy de chaussettes dans votre navigateur pour le port 1080.

3
répondu user5950 2016-05-04 14:00:07

je fais face à Solr v. 4.10 aussi, et c'est vraiment gênant dur. Aucune des soi-disant" solutions " ne fonctionne pour moi. J'ai fini par installer Nginx sur ma boîte Ubuntu et proxy le port :8983 à docker, où le mot de passe est requis par Nginx. Cela fonctionne pour moi.

0
répondu user2752286 2016-02-08 20:24:55

je viens d'informer quelle a été la solution dans mon cas. En fait mon site Web a été écrit en ajax c'est pourquoi en mettant passowrd protéger aussi mon site web. Donc ce n'est pas la solution dans le cas où solr doit être utilisé par l'internet ouvert. Ainsi sa meilleure solution comme guidé par solr wiki est d'utiliser des proxys comme nœud.js, nginex etc. comme donné ici

Utilisation du noeud.js proxy et l'application des règles iptable (comme guidé ci-dessus) résolvent mon problème.

0
répondu Shafiq 2016-05-16 10:28:47