изменить атрибут фото LDAP, Spring-ldap InvalidAttributeValueException

Я разрабатываю программу интерфейса LDAP, которая может изменять атрибуты человека, но когда я пытаюсь изменить значение атрибута фотографии с помощью строки URL-адреса, у меня возникает следующее исключение:

org.springframework.ldap.InvalidAttributeValueException: [LDAP: код ошибки 21 - фото: нет валидатора для синтаксиса 1.3.6.1.4.1.1466.115.121.1.23];

Я думаю, что должен отправить файл фотографии в формате JPG в ldap, но я не знаю, как это сделать ...

У кого-нибудь есть идея?


person a11r    schedule 29.04.2011    source источник


Ответы (1)


Во-первых, когда вы сталкиваетесь с такой ошибкой с синтаксическим OID, вы можете отправить ее в репозиторий OID. Здесь вы получите следующую информацию: «Значения в этом синтаксисе закодированы, как если бы они были строками октетов». Это означает, что вам нужно закодировать свой файл JPG или PNG в Base64 и установить атрибут с этим значением (фактически, массив).

Во-вторых, в моем понимании есть 3 атрибута для хранения фото-данных jpegPhoto, Photo и thumbnailPhoto. Но для меня лучше хранить фотографии в файловой системе или базе данных и помещать в каталог и URL-адрес или что-то в этом роде.

Вы найдете здесь руководство чтобы обработать их с помощью java.

person JPBlanc    schedule 29.04.2011
comment
ссылка не работает / требуется разрешение - person wmfairuz; 30.12.2015
comment
@wmfairuz, извините, первоначальный учебник больше не существует (2011 г.). - person JPBlanc; 30.12.2015
comment
«Октетная строка» не означает Base-64. Ни RFC 2252, ни учебник по Java, на который вы ссылаетесь, не говорят об этом. Это означает 8-битные байты. - person user207421; 30.12.2015
comment
Извините, @EJP, вы не поняли мой ответ. Другими словами, я хочу сказать, что если вы хотите поместить двоичные данные в атрибуты Octet Stings, вам нужно закодировать эти данные с помощью Base64. И если у вас есть некоторые знания о LDAP, вы должны знать, что это текущее использование! - person JPBlanc; 30.12.2015