以往Solr的运行都要借助Servlet容器,现在的版本都自带jetty,/solr5/bin/solr start就可直接启动服务,很简单。进入Solr界面可以操作很多东西,自己可以操作,别人知道地址后也能瞎操作,为了避免这种情况就需要对之配置权限,例如用户登录。下面就来配置这项功能(大神直接跳过,新手可以参考下)。
先在/solr5/server/solr-webapp/webapp/WEB-INF/web.xml中添加如下内容(简书中粘贴不了代码,也没上传代码的功能,偷个懒用截图,嘿嘿,jetty9中demo配置里有相关内容):
然后在/solr5/server/etc/jetty.xml中添加内容:
最后在/solr/server/etc/目录下vim realm.properties,该文件用来存放用户名密码。
例如用户名:admin,密码:12345
输入命令java -cp /solr5/server/lib/jetty-util-9.2.13.v20150730.jar org.eclipse.jetty.util.security.Password admin 12345把明文密码生成三种格式密文如下:
realm.properties文件中格式是
username: password,role
比如密码用MD5格式就是这样 admin:MD5:827ccb0eea8a706c4c34a16891f84e7b,admin
这些都完成后,重启服务,进入Solr主界面
这就算添加了登录权限。网站提示的内容就是web.xml和jetty.xml添加内容中的"Solr Admin",自己可以设置的(如果要更改,则两个文件中都要改成一样的才行)。
就弄这东西都花了几天,文档看了,网上的东西也看了,tomcat实现这功能很容易,但我只想用solr中自带的东西,在简书上看到@晨宇的Solr5权限配置,有所启发,感谢@晨宇回答我的疑问,最后对比jetty9中的demo弄成功了。
看的jetty文档里还有其他两种不同的权限设置,等我弄出来再跟大家讨论。solr文档里有关于solrcloud认证的三种方法,也还没弄成,如果大家有研究这些的希望能一起讨论。