目录

zookeeper C API client 如何设置digest鉴权验证

本文参考地址

zkCli.sh如何设置

自带的命令行客户端设置比较简单

  1. 增加授权用户。addauth digest root:111

其中digest是scheme,root:111是id (credential,root可以理解为明文用户,111可以理解为明文密码) :perm

2.为特定目录设置权限。 setAcl /1 auth:root:cdwra

为 /1 目录添加权限,目录可以任意指定,只对当前目录起作用。比如当前目录为 /1, 所以根目录/没有鉴权验证。root可以理解为明文用户,cdwra含义为缩写。

c 可以创建子节点, d 可以删除子节点(仅下一级节点), r 可以读取节点数据及显示子节点列表,w 可以设置节点数据, a 可以设置节点访问控制列表权限

  1. 为目录设置权限后,重新连接访问,则需要针对会话添加授权用户

addauth digest root:111

C API client如何设置

  1. 增加授权用户
cpp 复制代码
int zoo_add_auth(zhandle_t *zh,const char* scheme,const char* cert,int certLen, void_completion_t completion, const void *data);

scheme填写digest

cert填写root:111

certLen填写cert字符串长度

completion回调函数

该函数执行成功后,即可访问需要鉴权验证的目录

  1. 为特定目录设置权限
cpp 复制代码
int zoo_set_acl(zhandle_t *zh, const char *path, int version, const struct ACL_vector *acl)

path填写需要设置权限的路径

version填写-1,表示忽略校验版本号

acl 鉴权数据结构体
用法如下:

cpp 复制代码
auto acl_item = new ACL{};
acl_item->id.scheme = (char*)"digest";
acl_item->id.id = (char*)"root:wEu/CPgrVI/4mg2A1AKUtstW6AI="; // 明文用户名:base64密码,明文密码是111
acl_item->perms = ZOO_PERM_ALL; // 所有权限,即cdwra

struct ACL_vector acl{};
acl.count = 1; // ACL 规则的数量
acl.data = acl_item;
auto rc = zoo_set_acl(zh_, "/1", -1, &acl);
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
写代码的小王吧3 小时前
【安全】Web渗透测试(全流程)_渗透测试学习流程图
linux·前端·网络·学习·安全·网络安全·ssh
24白菜头4 小时前
C和C++(list)的链表初步
c语言·数据结构·c++·笔记·算法·链表
Tee xm5 小时前
清晰易懂的跨平台 MySQL 安装与配置教程
linux·windows·mysql·macos·安装
GalaxyPokemon5 小时前
MySQL基础 [一] - Ubuntu版本安装
linux·运维·ubuntu
musk12125 小时前
wsl2 配置ubuntu 固定ip
linux·tcp/ip·ubuntu
柳鲲鹏5 小时前
UBUNTU编译datalink
linux·运维·ubuntu
追随远方5 小时前
Ubuntu 64-bit 交叉编译 FFmpeg(高级用户指南)
linux·ubuntu·ffmpeg
努力努力再努力wz5 小时前
【c++深入系列】:类与对象详解(中)
java·c语言·开发语言·c++·redis
GalaxyPokemon5 小时前
Muduo网络库实现 [七] - Connection模块
linux·服务器·网络