【发布时间】:2015-07-31 14:57:59
【问题描述】:
我已通过 OpenDJ 控制面板向用户添加了一张图片,但我似乎无法检索该图片,因此我可以在网页上显示它。我找到了两个属性 thumbnailPicture 和 photo 并尝试通过以下方式访问它:
NamingEnumeration<?> namingEnum = ctx.search(baseFilter, "(uid="+username+")", searchControls);
if (namingEnum.hasMore ()){
SearchResult result = (SearchResult) namingEnum.next ();
Attributes attrs = result.getAttributes ();
photo=(String)attrs.get("thumbnailPicture").get() ;
}
代码没有错,因为我可以检索电子邮件地址,例如当我更改 photo=(String)attrs.get("thumbnailPicture").get() ; 时
到
photo=(String)attrs.get("mail").get() ;
我注意到当通过 OpenDJ 控制面板添加图片时,它会通过浏览按钮进行,所以我猜路径应该存储在某个地方?
我没有收到任何错误消息(我想是因为属性 thumbnailPicture 和 photo 没有在 OpenDJ 中填写,所以它们返回为空)但是我会比如:
- 保存图片的路径,但这只是猜测 OpenDJ 实际上存储了这些信息?
- 可以检索图片,但我不确定它在 OpenDJ 中保存的内容。现在的代码用于文件的路径(这就是为什么要转换为 String)。
【问题讨论】:
-
对你在文中提到“thumbnailPicture and photo”感到困惑,但代码显示“thumbnailPhoto”?
-
另外,您正在使用 JNDI。为什么不使用更现代的 OpenDJ SDK?
-
@JnRouvigac JNDI 有效,您为什么不使用它? LDAP 协议没有改变。
-
JNDI 确实有效,但 API 不是很好。使用它的代码笨拙且难以阅读。
-
@JnRouvigac 你是对的,如果我不使用正确的属性,它就不会起作用..