我正在使用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中添加的用户名和密码。但无法登录。
请帮我弄清楚我错在哪里。
答案 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失败并显示错误,指示密码不正确。
我们使用官方证书,而不是自签名。
只有明文密码似乎在我们的实例中有用。