我的solr安装目录:/home/solr/
上一篇记录了sorld安装配置:https://blog.csdn.net/Muscleheng/article/details/106126886
solr默认是没有登录验证的,浏览器输入地址即可服务,这样裸奔不安全,所以需要配置一下,
配置完后,定时同步数据 就需要添加用户名密码了,否则访问不了,定时同步数据移步:
https://blog.csdn.net/Muscleheng/article/details/106283364
1、新建配置文件security.json
放到目录/home/solr/solr-8.5.1/server/solr下,就是和solr.xml同级
{
"authentication": {
"blockUnknown": true,
"class": "solr.BasicAuthPlugin",
"credentials": {
"solr": "NOtt7U5otRIJh3ns42J3f++Vwvv3zPai05rjUaB0tcI= k2gx9ThRQYbruBV00jllynx0lshMdM6ERpFEzY4H2sg="
},
"": {
"v": 0
}
},
"authorization": {
"class": "solr.RuleBasedAuthorizationPlugin",
"permissions": [
{
"name": "security-edit",
"role": "admin"
}
],
"user-role": {
"solr": "admin"
}
}
}
1.1 配置说明:
在这个文件中定义了几个东西,以下的解释对应于上述的序号:
- 启用基本身份验证和基于规则的授权插件。
- 参数 "blockUnknown": true 表示不允许未经身份验证的请求通过。
- 已定义了一个名为 "solr" 的用户,其中有密码 "solr@123456"。
- "admin" 角色已定义,并且具有编辑安全设置的权限。
- "solr" 用户已被定义为 "admin" 角色。
这里配置了用户名密码是:solr solr@123456
1.2 用户名密码管理
密码是经过加密的,修改和添加用户名密码可以通过请求solr提供的接口操作例如:
这里使用postman请求
请求方式:post,Content-Type:application/json
请求路径:http://已有用户名:密码@127.0.0.1:8983/solr/admin/authentication
如果用户名存在,就修改密码,否则就创建用户
删除用户的请求入参:
{
"delete-user":{
"admin":"admin888"
}
}
重启solr访问
实现登录验证
注意:通过我的实践证明,用户名和密码尽量不要带特殊字符,否则使用地址栏传用户名密码的时候访问不了
例如我使用solrJ连接solr的时候,密码里面有特殊字符@,所以连接不上,这个时候修改一下密码就行了
http://solr:solr@123456@127.0.0.1:8983/solr/