【问题标题】:edit LDAP Photo attribute, spring-ldap InvalidAttributeValueException编辑 LDAP 照片属性,spring-ldap InvalidAttributeValueException
【发布时间】:2011-04-29 08:08:00
【问题描述】:

我开发了一个可以修改人物属性的LDAP接口程序,但是当我尝试用url字符串修改照片属性的值时,我有这个异常:

org.springframework.ldap.InvalidAttributeValueException:[LDAP:错误代码 21 - 照片:没有语法 1.3.6.1.4.1.1466.115.121.1.23 的验证器];

我想我必须将 JPG 照片文件发送到 ldap 但我不知道该怎么做...

有人有想法吗?

【问题讨论】:

    标签: java jakarta-ee ldap photo spring-ldap


    【解决方案1】:

    首先,当您遇到这样的语法 OID 错误时,您可以将其提交给OID repository。在这里,它将为您提供以下信息“此语法中的值被编码为好像它们是八位字节字符串”。 这意味着您必须在 Base64 中对 JPG 或 PNG 文件进行编码,并使用该值设置属性(实际上是一个数组)。

    其次,据我了解,存储照片数据有 3 个属性jpegPhotoPhotothumbnailPhoto。但对我来说,最好将照片存储在文件系统或数据库中,然后放入 Directory ans URL 或类似的东西中。

    你会找到 here a tutorial 用 java 来处理它们。

    【讨论】:

    • 链接已损坏/需要许可
    • @wmfairuz 抱歉,最初的教程不再存在(2011 年)。
    • 'Octet string' 并不表示 Base-64。 RFC 2252 和您提到的 Java 教程都没有这样说。这意味着 8 位字节。
    • 对不起@EJP 你不明白我的回答。换句话说,我想说,如果你想将二进制数据放入 Octet Stings atrtibuts,你必须使用 Base64 对这些数据进行编码。如果您对 LDAP 有所了解,您就会知道它是当前的用法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多