03、全文检索 -- Solr -- Solr 身份验证配置(给 Solr 启动身份验证、添加用户、删除用户)

目录

全文检索 -- Solr -- Solr 身份验证配置

学习之前需要先启动 Solr

执行如下命令即可启动Solr:

复制代码
solr start -p <端口>

如果不指定端口,Solr 默认的端口是8983

直接输入 solr start 启动就可以了;

显示:在8983端口上启动Solr服务器,等待长达30分钟。寻找快乐!

启用身份验证:

Solr为了支持权限控制,提供如下几种身份验证插件:

复制代码
 - Kerberos Authentication Plugin:Kerberos身份验证插件。
 - Basic Authentication Plugin:基本身份验证插件。
 - Hadoop Authentication Plugin:Hadoop身份验证插件。
 - JWT Authentication Plugin:JWT身份验证插件。 

启用基本身份验证插件:

(1)在Solr安装路径下的server\solr子目录下添加一个security.json文件,可在该文件中定义角色、用户。

security.json 文件内容如下:

(2)修改了 security 文件,需要打开小黑窗重启Solr,再次访问Web控制台则要求用户登录。

超级用户账户密码:root 32147

添加用户:

用curl命令

向 Solr 的 RESTful 接口发送添加用户的请求即可:

复制代码
 curl --user root:32147 -X POST ^
 http://localhost:8983/solr/admin/authentication ^
 -H 'Content-type:application/json' -d @users.json


其中users.json文件内容如下:

{"set-user": {"crazyit":"32147"}}

用 Postman

http://localhost:8983/solr/admin/authentication 发送POST请求,

请求的JSON数据为:{"set-user": {"ljh":"123456"}}

Postman 演示:

输入这个

再输入这个

添加用户成功后,可以看到 security.json 配置文件被修改了

如果直接在security文件里面把 root 用户的密码改成123456(如图,把 ljh 的123456这个密码的加盐加密后的字符串复制给root 就行)。

在配置文件改 root 用户的密码后, solr 需要重启才能生效

在postman 新增成功的 ljh 用户,就不需要重启solr就可直接登录成功,因为这个 ljh 用户的添加不是通过修改security文件得来的。

在postman新增的ljh用户,就不需要重启solr,可以直接登录

root 在配置文件该密码后,需要重启,才能生效:

重启后重新登录

删除用户:

用curl命令

复制代码
 向Solr的RESTful接口发送删除用户的请求即可:
 curl --user root:32147 -X POST ^
 http://localhost:8983/solr/admin/authentication ^
 -H 'Content-type:application/json' -d @delete.json
 其中delete.json文件内容如下:
 {"delete-user": ["crazyit"]}

用Postman

http://localhost:8983/solr/admin/authentication 发送 POST 请求,请求的 JSON 数据为:{"delete-user": "ljh"}

其实所有用户最终都是放在security.json文件中管理的,该文件中只有密码不能直接修改,其他都可以直接修改。因为密码是加盐加密的。

Postman 演示:

请求类型是 DELETE 好像不支持,所以改成 POST 请求。

成功删除 ljh 这个用户

如图,security 配置文件的ljh用户的信息就没了

提示:

除了添加用户(添加用户需要输入加盐加密的密码),对用户的其他操作(如 删除用户、为用户添加权限等)都可以通过直接修改 security.json 文件来实现。

相关推荐
Wang's Blog1 天前
PostgreSQL笔记48: 全文检索与向量检索的对比与混合检索实践
笔记·postgresql·全文检索
Elastic 中国社区官方博客3 天前
ES95:面向 Elasticsearch 时间序列指标的自适应压缩
大数据·运维·elasticsearch·搜索引擎·架构·全文检索
Elastic 中国社区官方博客4 天前
跳过 mapping 爆炸:ES|QL 无需动态 mapping 即可查询无 schema JSON key
大数据·人工智能·sql·elasticsearch·搜索引擎·json·全文检索
Elastic 中国社区官方博客7 天前
跳过有状态的 OTel Collector:Elasticsearch 9.5 原生存储两种指标时间类型
大数据·人工智能·elasticsearch·搜索引擎·重构·全文检索
Elastic 中国社区官方博客8 天前
你的 AI agent 不需要你的 API 密钥:使用 OAuth 2.1 对 Elasticsearch MCP 服务器进行身份验证
大数据·运维·人工智能·elasticsearch·搜索引擎·全文检索
Elastic 中国社区官方博客9 天前
训练量仅占 0.35%,竞争力却达到 100%:jina-embeddings-v5-omni 背后的冻结塔架构
大数据·人工智能·elasticsearch·机器学习·重构·全文检索·jina
Elastic 中国社区官方博客10 天前
我们如何重构 APM 服务地图以应对事件响应:Observability 9.5 背后的设计故事
大数据·人工智能·elasticsearch·重构·全文检索
Elastic 中国社区官方博客10 天前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
AI领路人.10 天前
OceanBase混合检索(Hybrid Search):多模态检索实战指南
全文检索·向量检索·语义理解·混合检索·稀疏检索·加权融合
Elastic 中国社区官方博客11 天前
用两行 JSON 替换你的 ILM 策略:数据流生命周期新增冻结层支持
大数据·运维·elasticsearch·搜索引擎·架构·全文检索