当前位置: 首页 > news >正文

zookeeper-3.8.3-基于ACL的访问控制

ZooKeeper基于ACL的访问控制

ZooKeeper 用ACL控制对znode的访问,类似UNIX文件权限,但无znode所有者概念,ACL指定ID及对应权限,且仅作用于特定znode,不递归。

ZooKeeper支持可插拔认证方案,ID格式为scheme:expression。客户端认证时,其对应ID与连接关联,访问znode时与ACL比对。

ACL权限
  • CREATE:可创建子节点。
  • READ:可获取节点数据和列出子节点。
  • WRITE:可设置节点数据。
  • DELETE:可删除子节点。
  • ADMIN:可设置权限。

CREATEDELETEWRITE分离实现细粒度控制,ADMIN类似所有者权限,所有人隐式有LOOKUP权限(可查看节点状态)。获取znode的ACL需READADMIN权限,无ADMIN权限时digest哈希值会被屏蔽。

内置ACL方案
  • world:ID为anyone,代表任何人。
  • auth:特殊方案,忽略expression,用当前用户认证信息,无认证用户时设ACL会失败。
  • digest:用username:password生成MD5哈希作ACL ID标识,认证时明文发送username:password
  • ip:用客户端主机IP作ACL ID标识,表达式为addr/bits
  • x509:用客户端X500主体作ACL ID标识,安全端口下客户端自动认证并设x509认证信息。
ZooKeeper C客户端API

C库提供权限常量(如ZOO_PERM_READ等)和标准ACL ID(如ZOO_ANYONE_ID_UNSAFE等),还有三个标准ACL(如ZOO_OPEN_ACL_UNSAFE完全开放)。相关操作有:

  • zoo_add_auth:用于客户端向服务器认证,可多次调用。
  • zoo_create:创建新节点,需父节点有CREATE权限。
  • zoo_get_acl:获取节点ACL信息,需READADMIN权限。
  • zoo_set_acl:替换节点ACL列表,需节点有ADMIN权限。

并给出使用“foo”方案认证并创建仅具创建权限临时节点的示例代码。

可插拔的ZooKeeper身份验证

ZooKeeper有可插拔身份验证框架,涉及客户端认证和在ACL中找对应条目两个操作。身份验证插件需实现特定接口:

public interface AuthenticationProvider {String getScheme();KeeperException.Code handleAuthentication(ServerCnxn cnxn, byte authData[]);boolean isValid(String id);boolean matches(String id, String aclExpr);boolean isAuthenticated();
}
  • getScheme返回插件标识字符串。
  • handleAuthentication处理客户端认证信息。
  • isValid验证ID格式。
  • matches匹配客户端认证信息和ACL条目。
  • isAuthenticated确定认证信息是否加入ACL。

内置ipdigest插件,可通过系统属性添加插件,服务器启动时查找zookeeper.authProvider.开头的属性并解析为插件类名,所有服务器插件定义需一致。

3.6.0版本提供另一抽象:

public abstract class ServerAuthenticationProvider implements AuthenticationProvider {public abstract KeeperException.Code handleAuthentication(ServerObjs serverObjs, byte authData[]);public abstract boolean matches(ServerObjs serverObjs, MatchValues matchValues);
}

扩展该类可接收额外参数(ServerObjsMatchValues) ,涉及ZooKeeperServer实例、当前连接、操作路径、操作值及setAcl()时设置的ACL列表等信息。

相关文章:

zookeeper-3.8.3-基于ACL的访问控制

ZooKeeper基于ACL的访问控制 ZooKeeper 用ACL控制对znode的访问,类似UNIX文件权限,但无znode所有者概念,ACL指定ID及对应权限,且仅作用于特定znode,不递归。 ZooKeeper支持可插拔认证方案,ID格式为scheme…...

Java定时任务实现方案(四)——Spring Task

Spring Task 这篇笔记,我们要来介绍实现Java定时任务的第四个方案,使用Spring Task,以及该方案的优点和缺点。 ​ Spring Task是Spring框架提供的一个轻量级任务调度框架,用于简化任务调度的开放,通过注解或XML配置的…...

WGCLOUD运维工具从入门到精通 - 如何设置主题背景

需要升级到WGCLOUD的v3.5.7或者以上版本,才会支持自定义设置主题背景色 WGCLOUD下载:www.wgstart.com 我们登录后,在右上角点击如下的小图标,就可以设置主题背景色了,包括:经典白(默认&#x…...

Babylon.js 中的 setHardwareScalingLevel和getHardwareScalingLevel:作用与配合修改内容

在 Babylon.js 中,Engine类提供了setHardwareScalingLevel和getHardwareScalingLevel方法,用于管理和调整渲染分辨率与屏幕分辨率的比例。这些方法在优化性能和提升画质方面非常有用。尤其是在某些平台不支持硬件反锯齿时,可以考虑使用setHar…...

Qwen2-VL:在任何分辨率下增强视觉语言模型对世界的感知 (大型视觉模型 核心技术 分享)

摘要 我们推出了Qwen2-VL系列,这是对之前Qwen-VL模型的高级升级,重新定义了视觉处理中的常规预设分辨率方法。Qwen2-VL引入了Naive Dynamic Resolution机制,使模型能够动态地将不同分辨率的图像转换为不同的视觉令牌数量。这种方法允许模型生成更高效和准确的视觉表示,紧密…...

Docker——入门介绍

目录 1.初识 Docker1.1.什么是 Docker1.1.1.应用部署的环境问题1.1.2.Docker 解决依赖兼容问题1.1.3.Docker 解决操作系统环境差异1.1.4.小结 1.2.Docker 和虚拟机的区别1.3.Docker 架构1.3.1.镜像和容器1.3.2.DockerHub1.3.3.Docker 架构1.3.4.小结 1.4.安装 Docker1.4.1.概述…...

02数组+字符串+滑动窗口+前缀和与差分+双指针(D2_字符串(D2_刷题练习))

目录 1. 最长公共前缀 1.1. 题目描述 1.2. 解题方案 方案一:纵向对比 方案二:横向对比 方案三:最值对比 方案四:分治 方案五:二分 1.3. 知识归纳 2. 左旋转字符串(简单) 2.1. 题目描述…...

【redis进阶】集群 (Cluster)

目录 一、基本概念 二、数据分片算法 2.1 哈希求余 2.2 一致性哈希算法 3.3 哈希槽分区算法 (Redis 使用) 三、集群搭建 (基于 docker) 3.1 创建目录和配置 3.2 编写 docker-compose.yml 3.3 启动容器 3.4 构建集群 四、主节点宕机 4.1 处理流程 五、集群扩容 六、集群缩容 (选…...

Python案例--100到200的素数

一、问题描述 素数(Prime Number)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。判断一个数是否为素数是计算机科学和数学中的一个经典问题。本实例的目标是找出101到200之间的所有素数,并统计它们的数量。 二、…...

C语言,无法正常释放char*的空间

问题描述 #include <stdio.h> #include <stdio.h>const int STRSIZR 10;int main() {char *str (char *)malloc(STRSIZR*sizeof(char));str "string";printf("%s\n", str);free(str); } 乍一看&#xff0c;这块代码没有什么问题。直接书写…...

重回C语言之老兵重装上阵(十五)C语言错误处理

C语言错误处理 在C语言中&#xff0c;错误处理是非常重要的一部分。C语言没有像高级语言&#xff08;例如Python、Java&#xff09;那样内建的异常处理机制&#xff08;如try-catch&#xff09;&#xff0c;但它提供了几种方法来捕捉和处理错误。正确的错误处理可以提高程序的稳…...

基于微信的课堂助手小程序设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

Effective C++ 规则50:了解 new 和 delete 的合理替换时机

1、背景 在 C 中&#xff0c;new 和 delete 是动态分配内存的核心操作符。然而&#xff0c;直接使用它们有时会增加程序的复杂性&#xff0c;甚至导致内存泄漏和其他问题。因此&#xff0c;了解何时替换 new 和 delete 并选择更适合的内存管理策略&#xff0c;是编写高效、健壮…...

Alfresco Content Services dockerCompose自动化部署详尽操作

Alfresco Content Services docker社区部署文档 Alfresco Content Services简介 Alfresco Content Services&#xff08;简称ACS&#xff09;是一款功能完备的企业内容管理&#xff08;ECM&#xff09;解决方案&#xff0c;主要面向那些对企业级内容管理有高要求的组织。具体…...

学习第七十六行

提高github下载速度方法 1.github转码云 2.https://github.com.cnpmjs.org com后面加东西 对于面试笔试&#xff0c;最好方法刷力扣&#xff0c;1000题包进大厂的...

YOLOv11改进,YOLOv11检测头融合DynamicHead,并添加小目标检测层(四头检测),适合目标检测、分割等任务

摘要 作者提出一种新的检测头,称为“动态头”,旨在将尺度感知、空间感知和任务感知统一在一起。如果我们将骨干网络的输出(即检测头的输入)视为一个三维张量,其维度为级别 空间 通道,这样的统一检测头可以看作是一个注意力学习问题,直观的解决方案是对该张量进行全自…...

一个基于Python+Appium的手机自动化项目~~

本项目通过PythonAppium实现了抖音手机店铺的自动化询价&#xff0c;可以直接输出excel&#xff0c;并带有详细的LOG输出。 1.excel输出效果: 2. LOG效果: 具体文件内容见GitCode&#xff1a; 项目首页 - douyingoods:一个基于Pythonappium的手机自动化项目&#xff0c;实现了…...

【后端开发】字节跳动青训营之性能分析工具pprof

性能分析工具pprof 一、测试程序介绍二、pprof工具安装与使用2.1 pprof工具安装2.2 pprof工具使用 资料链接&#xff1a; 项目代码链接实验指南pprof使用指南 一、测试程序介绍 package mainimport ("log""net/http"_ "net/http/pprof" // 自…...

Linux:线程池和单例模式

一、普通线程池 1.1 线程池概念 线程池&#xff1a;一种线程使用模式。线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#xff0c;等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价&…...

使用iis服务器模拟本地资源服务器unityaddressables热更新出错记录

editor中设置了using exculexing 模拟远程加载addressable可以实现资源热更新&#xff0c;build后的软件却没有成功。 iis服务器中mime中需要设置bundle的文件扩展名&#xff0c;时editor成功&#xff0c;build后失败 原因没有设置hash的扩展名&#xff0c;设置后editor和buil…...

RMBG-2.0从零开始:Ubuntu 22.04 + CUDA 12.1完整环境搭建

RMBG-2.0从零开始&#xff1a;Ubuntu 22.04 CUDA 12.1完整环境搭建 想体验一键抠图&#xff0c;把照片背景变得干干净净&#xff1f;今天&#xff0c;我们就来手把手教你&#xff0c;在Ubuntu 22.04系统上&#xff0c;从零开始搭建一个基于RMBG-2.0模型的智能抠图环境。RMBG-…...

良心推荐!阿贝云免费云服务器,新手小白也能轻松上手

最近在折腾个人网站&#xff0c;想找个免费的云服务器练练手&#xff0c;试了好几家都不太满意。后来朋友推荐了阿贝云&#xff0c;体验下来感觉真的不错。 首先&#xff0c;阿贝云的免费云服务器配置很实在&#xff1a;1核CPU、1GB内存、5M带宽&#xff0c;还带独立公网IP。对…...

2026年亲测有效:合肥无人机培训案例分享

行业痛点分析随着无人机技术的飞速发展&#xff0c;其在各个领域的应用越来越广泛。然而&#xff0c;无人机行业也面临着一些核心技术挑战。首先&#xff0c;无人机的操作和维护需要专业的知识和技能&#xff0c;而市场上缺乏足够的专业人才。根据行业数据显示&#xff0c;目前…...

ComfyUI-Manager:一站式AI绘画插件智能管理平台

ComfyUI-Manager&#xff1a;一站式AI绘画插件智能管理平台 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom node…...

Alpamayo-R1-10B多场景测试:拥堵跟车、无保护左转、施工区绕行等长尾场景适配效果

Alpamayo-R1-10B多场景测试&#xff1a;拥堵跟车、无保护左转、施工区绕行等长尾场景适配效果 1. 引言&#xff1a;自动驾驶的“最后一公里”难题 想象一下&#xff0c;你坐在一辆自动驾驶汽车里&#xff0c;行驶在一条陌生的城市道路上。前方是一个没有红绿灯的十字路口&…...

VideoAgentTrek-ScreenFilter开发环境配置:从零开始搭建Java调用示例

VideoAgentTrek-ScreenFilter开发环境配置&#xff1a;从零开始搭建Java调用示例 如果你是一名Java开发者&#xff0c;最近听说了VideoAgentTrek-ScreenFilter这个视频处理服务&#xff0c;想在自己的项目里试试看&#xff0c;但不知道从哪儿下手&#xff0c;那这篇文章就是为…...

网站的页面加载速度和SEO有什么关系

网站的页面加载速度和SEO有什么关系 在当今互联网时代&#xff0c;网站的页面加载速度和SEO&#xff08;搜索引擎优化&#xff09;之间的关系是一个不可忽视的重要问题。在用户体验和搜索引擎排名方面&#xff0c;页面加载速度起着至关重要的作用。本文将从问题分析、原因说明…...

ESP32-S3双下载方案对比:VSCode一键烧录 vs 乐鑫Flash工具实操

ESP32-S3双下载方案深度评测&#xff1a;VSCode高效开发 vs 乐鑫工具链生产级部署 1. 开发环境配置与工具链解析 对于ESP32-S3开发者而言&#xff0c;选择正确的开发工具直接影响项目效率。当前主流方案可分为两类&#xff1a;基于VSCode的集成化开发环境和乐鑫官方Flash下载工…...

AI时代,普通人必须知道的10个法律与版权风险

生成式AI的法律风险未经授权使用受版权保护的数据训练AI模型可能引发侵权诉讼。AI生成内容若与原创作品高度相似&#xff0c;可能被判定为抄袭。深度伪造与肖像权利用AI换脸或合成声音可能侵犯他人肖像权、名誉权。未经许可使用公众人物形象牟利&#xff0c;可能面临高额赔偿。…...

OpenClaw多模型对比:Phi-3-mini-128k-instruct与Qwen在自动化任务中的表现

OpenClaw多模型对比&#xff1a;Phi-3-mini-128k-instruct与Qwen在自动化任务中的表现 1. 测试背景与实验设计 去年夏天&#xff0c;当我第一次尝试用OpenClaw自动化处理日常办公任务时&#xff0c;最困扰我的问题就是模型选择。不同的模型在理解能力、响应速度和资源消耗上差…...