Jetty / SOLR管理员面板密码

时间:2015-02-04 06:31:11

标签: java solr jetty

我正在使用jetty在SOLR管理面板上应用身份验证。我已经阅读了很多教程,并使用以下步骤实现:

在/solr/core/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="."/>/var/www/solr/core/etc/realm.properties</Set>
      <Set name="refreshInterval">0</Set>
    </New>
  </Arg>
</Call>

在/solr/core/solr-webapp/webapp/WEB-INF/web.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-name>
    </auth-constraint>
  </security-constraint>

  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Test Realm</realm-name>

  </login-config>

然后使用以下代码行在solr / core / etc中创建文件realm.proprerties文件:

admin: OBF:1y0s1v1p1v2p1y0y, admin

但是当我使用网址http://localhost:8983/solr/打开solr管理面板时。我有一个弹出窗口询问用户名和密码。我填写了在realm.properties中添加的用户名和密码。但无法登录。

请帮我弄清楚我错在哪里。

2 个答案:

答案 0 :(得分:12)

在您的realm.properties文件中将用户定义为:

<username>: <password>, <role>

ex: admin: 12345, admin

同时检查您的"jetty.home"路径。它应该是&#39;等等。 SOLR核心文件夹中的目录。

同样在realm.properties中,您应该在散列后输入密码。为此,有一个默认的SOLR实用程序,可以用作:

java -cp jetty-util-8.1.10.v20130312.jar org.eclipse.jetty.util.security.Password <username> <password>

ex:java -cp jetty-util-8.1.10.v20130312.jar org.eclipse.jetty.util.security.Password admin 12345

输出

12345 OBF:19bv19bx19bz19c119c3 MD5:827ccb0eea8a706c4c34a16891f84e7b CRYPT:adpliAB3dA.06 您可以在属性文件中使用这三种形式中的任何一种,并将其类型用作:

admin: MD5:827ccb0eea8a706c4c34a16891f84e7b, admin

希望这可能会有所帮助!

答案 1 :(得分:0)

不完全支持模糊密码。

我可以确认在云端模式下的SOLR 6.4.1中使用Zookeeper构建,部分支持OBF密码。 SOLR启动,Admin UI正常工作,但是其他一些API失败并显示错误,指示密码不正确。

SOLR-8897

我们使用官方证书,而不是自签名。

只有明文密码似乎在我们的实例中有用。