Novo no openLDAP - estou tentando simplesmente adicionar uma imagem binária codificada em base64 (16Kb) ao photo
atributo da pessoa objectClass, mas o que quer que eu tente, simplesmente recebo este erro ' no validator for sintaxe 1.3.6.1.4.1.1466.115.121.1. 23 '.
Além disso, alterar o ldif para transmitir a imagem binária (usando photo: <file:///tmp/t1.png
) também falha com o mesmo erro.
Eu tentei com o Apache Directory Studio (que pega o arquivo binário e o converte para a representação base64), mas falha com o mesmo erro. Consigo fazer isso funcionar 'com o mesmo texto base64' no jpegPhoto
atributo (isso sugere que a codificação está bem formada), MAS gostaria simplesmente de entender por que falhou no atributo foto - alguém sabe explicar? Esta é uma nova instalação do OpenLDAP mais recente no Centos.
pesquisar esse erro no Google me dá Googlewack .
Cada atributo LDAP possui uma "sintaxe" específica; nem todos são definidos como strings ou blobs arbitrários.
O
photo
atributo foi originalmente definido para ter uma imagem especificamente no formato de imagem CCITT "Group 3 Fax" - é isso que significa a sintaxe OID em questão.(É por isso que
jpegPhoto
é um atributo separado – foi adicionado posteriormente para manter a compatibilidade com diretórios e clientes mais antigos, pois alterar o tipo de dados de um campo 'foto' existente não teria sido uma boa ideia.)Atualmente você está recebendo a mensagem de erro porque o servidor OpenLDAP realmente não suporta esse formato de dados, mas se suportasse, você ainda receberia uma mensagem diferente sobre os dados (JPEG) não serem reconhecidos como dados de imagem G3Fax .
Você pode editar o esquema OpenLDAP do atributo para alterar o tipo de dados que ele aceita (via cn=config) ou pode continuar usando o atributo mais recente 'jpegPhoto'.