我正在试驾X500Principal
这样的课程:
Map<String, String> attr = new LinkedHashMap<String, String>();
attr.put("CN", "Duke");
attr.put("O", "JavaSoft");
X500Principal p1 = new X500Principal("", attr);
X500Principal p2 = new X500Principal("CN=Duke,O=JavaSoft");
从Javadocs中,人们应该得到p1
和p2
应该相等的印象,但遗憾的是他们没有。使用getName
上的各种p1
方法,我可以认为我总是得到一个空字符串。
所以我想知道将地图传递给构造函数(或getName(String, Map)
方法)有什么意义?
答案 0 :(得分:3)
关键字映射应将属性名称映射到OID字符串。我们的想法是您可以定义自己的属性名称,这些属性名称不属于标准列表(CN,O,OU等)。
所以用法如下:
Map<String, String> attr = new HashMap<String, String>();
attr.put("FOO", "1.2.3.4.5.6.7.8.9");
X500Principal p = new X500Principal("CN=bar,FOO=baz", attr);
答案 1 :(得分:0)
查看该构造函数的javadoc。具体来说,它将keywordMap参数描述为
属性类型关键字映射,其中每个键都是关键字String 以String形式映射到相应的对象标识符(序列 由句点分隔的非负整数)。地图可能是空的 但永远不会为空。
基本上,keywordMap并不是X.500专有名称的替代品,它完全是另一回事。