2017-02-01 10 views
1

Я пытаюсь извлечь, сохранить и в свою очередь использовать objectGUID для запроса Active Directory. Чтобы получить атрибуты пользователя я использую следующиеЗапрос с использованием objectGUID - шаблон Spring LDAP

public static class MyDnKeyValueAttMapper implements AttributesMapper<Object> { 
     @Override 
     public List<LdapKeyValueList> mapFromAttributes(Attributes attributes) 
       throws NamingException, javax.naming.NamingException { 
      List<LdapKeyValueList> attributeKeyValMap = new ArrayList<LdapKeyValueList>(); 
      NamingEnumeration<String> namingEnumeration = attributes.getIDs(); 

      while (namingEnumeration.hasMoreElements()) { 
       String attributeName = (String) namingEnumeration.nextElement(); 
       String AttributeValue = attributes.get(attributeName).get().toString(); 
       attributeKeyValMap.add(new LdapKeyValueList(attributeName, AttributeValue)); 
      } 
      return attributeKeyValMap; 
     } 
    } 

ObjectGUID всегда, кажется, возвращается в виде строки. Я также пробовал -

UUID guid = (UUID) attributes.get("objectGUID").get(); 

Это бросает ошибку «не может преобразовать строку в UUID»

Похоже, что прежде, чем я могу сделать что-нибудь ldaptemplate поиск всегда возвращает атрибуты в виде строки.

Как я могу получить «objectGUID» в своем формате, чтобы я мог его хранить и использовать в поисковых запросах ldapTemplate.

Заранее спасибо.

ответ

1

Если вы не хотите, чтобы бинарный атрибут (objectGUID имел синтаксис октетной строки) возвращался в виде строки, вы должны это сказать. С Spring вам придется добавить <entry key="java.naming.ldap.attributes.binary" value="objectGUID"/> в контекстную среду.

Позже byte[] guid = (byte[]) namingEnumeration.getAttributes().get("objectGUID").get(); должен вернуть то, что вы ищете.

Только что напечатано, не проверено.

+0

Благодарим вас за то, что вы задаетесь вопросом, как этого добиться - пожалуйста, рассмотрите следующий пост: http://forum.spring.io/forum/spring-projects/security/64997-trying-to-retrieve-binary-attrib-objectguid -из-ActiveDirectory-используя-usersearch – NewBee