OpenLDAP, как создать и использовать объектный класс, который является дочерним для inetOrgPerson - PullRequest
0 голосов
/ 14 декабря 2011

Я пытаюсь создать адресную книгу на основе LDAP. Для каждого получателя / пользователя в нем мне нужно будет хранить информацию о своих контактных точках. Информация будет включать в себя:
тип контакта - телефон / электронная почта / факс / пейджер / др.
этикетка - чердак бабушки, работа, дом и т. д.
адрес - фактический номер телефона / адрес электронной почты / и т. д.
и несколько других свойств

Я уже понял, что нет ничего готового для этого, но я могу создать свой собственный объектный класс ContactPoint, сделать его структурным классом и сделать его дочерним элементом inetOrgPerson. но я все еще не могу понять, как все это происходит вместе. Например, как бы я запросил человека и его / ее контактные точки?

Ответы [ 2 ]

2 голосов
/ 17 декабря 2011

LDAP разработан для расширения и часто требует определения новых элементов схемы.Когда клиенты не могут найти атрибут с желаемым синтаксисом и именем, они должны определить новый атрибут с соответствующим классом объекта.Разработчики должны:

  • знать существующие элементы схемы
  • использовать существующие элементы схемы там, где это возможно
  • не использовать атрибуты, специфичные для поставщика, это приводит к низкому качеству и хрупкости систем,Используйте только атрибуты и классы объектов из схем, определенных телом стандартов (если, конечно, вы не свернули свои собственные)
  • наследуйте от существующего класса объектов вместо определения нового класса объектов
  • используйте правила соответствия(из определения типа атрибута) для сравнений и не используйте конструкции равенства языков.
  • избегайте extensibleObject, если это абсолютно не требуется.Использование extensibleObject является последним вариантом и аналогично использованию нетипизированного языка программирования и приводит к низкому качеству, хрупкости, сложности в обслуживании систем

Для получения дополнительной информации см. "LDAP: Практика программирования "

1 голос
/ 16 декабря 2011

Сделайте это inetOrgPerson и extensibleObject. Тогда вы можете использовать любой атрибут из любого места в нем. Я бы держался подальше от определения ваших собственных классов объектов.

...