bookkeeper metadata 可以通过zk查看,如下:

[zk: localhost:2181(CONNECTED) 9] ls /ledgers/00/0000
[L0121, L0144, L1361, L1436, L1443, L1486, L1492, L1496, L1518, L1528, L1531]
[zk: localhost:2181(CONNECTED) 10] ls /ledgers/00/0000/L1361
[]
[zk: localhost:2181(CONNECTED) 11] get /ledgers/00/0000/L1361
BookieMetadataFormatVersion     3?????????(2/
192.168.157.140:13100
some-passwordHZ:31008B
zk_addrz--+ee-e_:2181`????????_
[z+: +-ca+h-_+:2181(CONNECTED) 12]

也可以通过getLedgerManager的readLedgerMetadata获取,代码如下:

package org.apache.bookkeeper.example;import java.io.IOException;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.Base64;
import java.util.Base64.Encoder;
import java.util.Enumeration;
import java.util.HashMap;
import org.apache.bookkeeper.client.AsyncCallback;
import org.apache.bookkeeper.client.BKException;
import org.apache.bookkeeper.client.BookKeeper;
import org.apache.bookkeeper.client.LedgerEntry;
import org.apache.bookkeeper.client.LedgerHandle;
import org.apache.bookkeeper.client.api.DigestType;
import org.apache.bookkeeper.client.api.LedgerEntries;
import org.apache.bookkeeper.client.api.LedgerMetadata;
import org.apache.bookkeeper.client.api.ReadHandle;
import org.apache.bookkeeper.client.api.WriteHandle;
import org.apache.bookkeeper.common.concurrent.FutureEventListener;
import org.apache.bookkeeper.common.concurrent.FutureUtils;
import org.apache.bookkeeper.conf.ClientConfiguration;
import org.apache.bookkeeper.meta.LedgerManager;
import org.apache.bookkeeper.meta.LedgerManager.LedgerRange;
import org.apache.bookkeeper.meta.LedgerManager.LedgerRangeIterator;
import org.apache.bookkeeper.versioning.Versioned;
import org.apache.bookkeeper.meta.MetadataClientDriver;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.base64.Base64Encoder;public class LedgerlistExample {final static String ZOOKEEPER_SERVER = "zookeeper:2181";final static byte[] password = "some-password".getBytes();public static void main(String[] args) {ClientConfiguration config = new ClientConfiguration();config.setAddEntryTimeout(5000);//config.setMetadataServiceUri(ZOOKEEPER_SERVER);//config.setMetadataServiceUri(ZOOKEEPER_SERVER)config.setZkServers(ZOOKEEPER_SERVER);config.setAddEntryTimeout(2000);
//       curator = CuratorFrameworkFactory.newClient(ZOOKEEPER_SERVER,
//                  2000, 10000, new ExponentialBackoffRetry(1000, 3));Map<String, byte[]> customMetadata=new HashMap<String, byte[]>();Encoder base64 = Base64.getEncoder();System.out.println("password="+base64.encodeToString(password));// BookKeeper bkClient = new BookKeeper(config);BookKeeper bkClient = null;try {bkClient = BookKeeper.forConfig(config).build();MetadataClientDriver metaDriver = bkClient.getMetadataClientDriver() ;System.out.println("getScheme:"+metaDriver.getScheme());LedgerManager manager = bkClient.getLedgerManager();LedgerRangeIterator t = bkClient.getLedgerManager().getLedgerRanges(10000);while(t.hasNext()) {LedgerRange it = t.next();Set<Long> Ledgers = it.getLedgers();Ledgers.forEach(L ->{System.out.println(L);CompletableFuture<Versioned<LedgerMetadata>> w=manager.readLedgerMetadata(L);Versioned<LedgerMetadata> metaData;try {metaData = w.get();System.out.println("metaData="+metaData);} catch (InterruptedException | ExecutionException e) {// TODO Auto-generated catch blocke.printStackTrace();}});}} catch (Exception e ) {// TODO Auto-generated catch blocke.printStackTrace();}System.exit(0);}public static void applyCall(Versioned<LedgerMetadata> w) {}}

可以看到如下输出:

metaData=Versioned(value=LedgerMetadata{formatVersion=3, ensembleSize=2, writeQuorumSize=2, ackQuorumSize=1, state=OPEN, digestType=CRC32, password=base64:c29tZS1wYXNzd29yZA==, ensembles={0=[192.168.157.140:13100, 192.168.157.140:3100]}, customMetadata={}}, version=0)

即可以直接看到password的base64输出,因此password只是用于写入鉴权(容错)之类的,不是真正的访问安全控制。

bookkeeper metadata 获取及密码安全相关推荐

  1. 获取令牌密码_如何真正存储用户密码和api令牌(即密码)

    获取令牌密码 A cliché in posts detailing password storage schemes is to finish by telling the syadmins and ...

  2. 安全攻防实战:使用winlogonhack获取系统密码

    安全攻防实战:使用winlogonhack获取系统密码 S.S.F  simeon 摘要 在网络安全事件频发的今天,很多人都在抱怨,为什么我的系统被入侵了,我的主页被修改了,在入侵后,我采取了一些安全 ...

  3. 无线渗透--wifiphisher之wifi钓鱼获取wifi密码

    本来是想试验一下暴力破解的,但是由于字典太大,跑的时间也比较长,于是使用了钓鱼的方法. 先说一下wifiphisher钓鱼获取wifi密码的原理: wifiphisher对于你在攻击中选定的wifi会 ...

  4. 树莓派查看mysql的密码_树莓派安装MySQL 后若何获取登录密码

    树莓派安装MySQL后获取登录密码 树莓派基于Debian系统. 乐成安装MySQL后 su root vim /etc/mysql/debian.cnf 其中 user 和 password 就是你 ...

  5. 密码程序python_Python获取web密码程序的脚本源代码

    利用Python代码获取web密码程序的脚本源代码分享,达到能够抓取用户名.密码.cookie等信息的方法详解.需要用到 pcap.dpkt两个方法模块,请确认已经安装成功. python做的web获 ...

  6. 过年装X神器,快速获取 wifi 密码!

    祝各位朋友们新年快乐,牛年大吉???? 在春节期间,亲朋好友串个门聚一聚是难免的了,作为主人,被问 wifi 密码是常见的事,每次都需要给客人们一遍又一遍的说密码,感觉很low啊.作为程序员,这完全不 ...

  7. 给定一个用户,获取其密码警告期限;而后判断用户密码使用期限是否已经小于警告期限...

    if 给定一个用户,获取其密码警告期限:而后判断用户密码使用期限是否已经小于警告期限:    提示:计算方法,最长使用期限减去已经使用的天数即为剩余使用期限:    如果小于,则显示"War ...

  8. 如何通过破解hash来获取管理员密码(转)

    很多朋友问我是怎么抓对方的hash再破解的,因此这里我给大家写一篇获取管理员密码的文章,我一般不喜欢在服务器留木马或是后门,我比较喜欢利用管理员进入的方式来管理服务器. 本来想主要讲一下抓hash和跑 ...

  9. 保姆级-天翼网关TEWA-700G、TEWA-1000E/G等系列光猫获取超级密码

    准备: 1.天翼网关光猫 2.FAT32U盘 3.电脑 第一步 先将U盘插上网关,确定光猫可以正确识别 进入光猫新版的后台,192.168.1.1,账户密码在光猫底部的标签上,或拨打10000号查询 ...

最新文章

  1. 8种常被忽视的SQL错误用法,快来认领一下!
  2. 五、RabbitMQ的消息属性(读书笔记)
  3. sqlserver安装显示句柄无效_Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法...
  4. C#的多线程机制探索1
  5. R语言中识别和去除重复行
  6. 将“光头”识别为“足球”,AI 摄像头如何犯的错?
  7. Spring的Bean属性依赖注入
  8. Long-Short Memory Network(LSTM长短期记忆网络)
  9. 统计学习方法读书笔记13-改进的迭代尺度法(优化算法)
  10. python搭建http服务_Python搭建HTTP服务过程图解
  11. C# 微信公众号开发
  12. Qnap NAS + Emby Server + Kodi
  13. 元宇宙虚拟人迎来高峰期,哪个是你的最爱?
  14. 美爆!《自然》公布2018年19张最震撼的科学图片
  15. quartz mysql表文件_quartz 持久化 数据库表
  16. SEM纳米颗粒图像粒径分析 基于ImageJ
  17. 淮安php照片,一组图 看超罕见的老淮安 看超震撼的新淮安
  18. d3.js一个面积图的案例(包含brush与zoom)
  19. 空中飞行汽车,人类的未来交通?
  20. dede转eyou内核的详细步骤 易优cms Eyoucms快速入门

热门文章

  1. linux服务器好管理吗,给初学者Linux服务器管理建议
  2. 陀螺仪与磁力计的姿态融合——互补滤波(续)
  3. 中科曙光 量子计算机,中科曙光 量子计算机 量子计算机的曙光
  4. 我的阿里春招之路:历时14天,五轮面试后终于拿到Android岗offer,原来大厂都是从这几个方面问问题
  5. Linux上的Shebang符号(#!)
  6. java画bezier曲线_java 画的4个点的Bezier曲线
  7. opencv 编程总结与备忘
  8. STM32 定时器中断相关知识及配置
  9. 怎么删除w7桌面计算机图标,桌面无法删除的图标,小编教你win7桌面图标删不掉怎么办...
  10. NAMD靶向分子动力学模拟Target molecular dynamic stimulation(附conf文件)