如何禁用Solr Admin UI中Core的重载/卸载/重命名功能?
如何禁用Solr Admin UI中的Core重载、卸载及重命名功能(或添加凭据验证)
刚好之前做过类似的需求,Solr默认确实没有直接的配置项可以一键禁用Admin UI里的Core重载、卸载和重命名功能,但我们有两种靠谱的方式来实现你的需求——要么通过权限控制拦截敏感操作,要么给这些操作加上凭据验证门槛。
方法一:用Solr内置安全插件做细粒度权限控制
Solr的Security Plugin支持针对Core Admin操作设置权限,只有指定角色的用户才能执行敏感操作,步骤如下:
- 先确保Solr已经启用安全插件,没启用的话执行命令:
bin/solr enable -security - 编辑Solr配置目录下的
security.json文件,添加针对Core Admin操作的权限规则:
示例配置片段:
这样只有属于{ "permissions": [ { "name": "protect-core-admin-actions", "path": "/admin/cores", "actions": ["RELOAD", "UNLOAD", "RENAME"], "role": ["solr-admin"] } ], "roles": { "solr-admin": ["your-admin-username"], "read-only": ["regular-user"] } }solr-admin角色的用户才能执行重载、卸载、重命名操作,普通用户尝试时会收到权限不足的错误提示。
方法二:给敏感操作添加凭据验证(不彻底禁用)
如果只是希望用户点击这些选项时需要验证身份,而不是完全禁用,可以用反向代理的方式实现(比修改Solr源码更稳妥):
比如用Nginx作为Solr的前置代理,针对/admin/cores路径下的特定操作开启HTTP基本认证:
示例Nginx配置片段:
location ~* /admin/cores\?action=(RELOAD|UNLOAD|RENAME) { auth_basic "请输入管理员凭据"; auth_basic_user_file /etc/nginx/.solr-admin-passwd; proxy_pass http://localhost:8983; }
当用户在Admin UI点击这些操作按钮时,浏览器会弹出认证窗口,只有输入正确的用户名密码才能触发操作。
额外提醒
Solr Admin UI本质是为运维人员设计的,如果你的Solr服务暴露在公网环境,建议同时给整个Admin UI开启全局认证,避免未授权用户访问后台。
内容的提问来源于stack exchange,提问作者User1203
相关产品推荐
相关产品推荐

