前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i
背景:solr默认安装没带权限控制,每次进入页面直接操作都有点裸奔的感觉。要使用基本身份验证您必须先创建一个security.json文件,对于基本身份验证,security.json文件必须有一个authentication部分,它定义用于身份验证的类。可以在创建文件时添加用户名和密码(例如:sha256(password+salt) hash),或者可以稍后使用基本验证API添加。
1.示例security.json显示了如下所示的显示两个部分:
{ "authentication":{ 【1】 "blockUnknown": true, 【2】 "class":"solr.BasicAuthPlugin", "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="} 【3】 }, "authorization":{ "class":"solr.RuleBasedAuthorizationPlugin", "permissions":[{"name":"security-edit", "role":"admin"}], 【4】 "user-role":{"solr":"admin"} 【5】 } }
以下的解释对应于上述的序号:
- 启用基本身份验证和基于规则的授权插件。
- 参数 "blockUnknown": true 表示不允许未经身份验证的请求通过。
- 已定义了一个名为 "solr" 的用户,其中有密码 "SolrRocks"。
- "admin" 角色已定义,并且具有编辑安全设置的权限。
- "solr" 用户已被定义为 "admin" 角色。
独立模式使用Solr:将您的设置保存到名为security.json的本地文件中。则应将此文件放在 solr _home 中。
SolrCloud模式必须上传security.json到ZooKeeper。首先登入ZooKeeper终端,输入示例命令(内json字段已在上述说明)
#进入ZooKeeper终端 ./zkCli.sh
#修改ZooKeeper内security.josn节点文件 set /security.json '{"authentication":{"blockUnknown":true,"class":"solr.BasicAuthPlugin","credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}},"authorization":{"class":"solr.RuleBasedAuthorizationPlugin","permissions":[{"name":"security-edit","role":"admin"}],"user-role":{"solr":"admin"}}}'
2.重启solr访问,此时solr必须输入用户名和密码进行登入验证,这里配置了用户名密码是:solr:SolrRocks
3.solr用户管理Api
#新增或修改密码(如果用户名存在,就修改密码,否则就创建用户) curl --user solr:SolrRocks http://localhost:8983/api/cluster/security/authentication -H 'Content-type:application/json' -d '{"set-user": {"solr":"solr","tom":"tom"}}' #删除用户 curl --user solr:SolrRocks http://localhost:8983/api/cluster/security/authentication -H 'Content-type:application/json' -d '{"delete-user": ["tom"]}'
个人总结:
我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!