2009-04-02 2 views
1

Я надеюсь, кто-то может помочь мне понять, как работать с объектом, возвращенным вызовом DirContext.lookup.Как получить доступ к атрибутам этого объекта LDAP?

Следующий фрагмент кода работает и возвращает объект. Я просто не могу понять, как получить атрибуты от объекта.

javax.naming.directory.DirContext ctx = 
    javax.naming.directory.getContext(false); 
Object o = ctx.lookup(rdn); 

Любая помощь будет очень признательна.

ответ

0

Вы должны знать, какой объект вы ожидаете получить от lookup(), явно наложив его на него, а затем сделайте все, что хотите.

В конце концов, вы должны иметь что-то вроде этого:

InitialContext iCtx = new InitialContext(); 
// load the iCtx with environment variables if necessary 
Object o = iCtx.lookup("objectNameOrString"); 
ExpectedObjectType eot = (ExpectedObjectType) o; 
eot.doWhatever(); 
+0

Должно быть, что-то здесь отсутствует. Я знаю класс объекта объекта в LDAP, но у меня нет соответствующего объекта приложения. Должен быть какой-то рефлексивный механизм для запроса атрибутов объекта? –

0

В директории LDAP, вы могли бы сделать:

Атрибуты AttrS = ctx.getAttributes (дп);

Для того, чтобы получить атрибуты объекта

2

Атрибуты ATTRS = ctx.getAttributes (Dn); будет извлекать атрибуты пользователя, предполагая, что запись, запрашивающая значения arrtibute, имеет соответствующие права.

Однако наилучшей практикой является только запрос необходимых атрибутов.

Если вы хотите просмотреть все атрибуты, вы должны запросить значения атрибута objectclass, а затем запросить схему, чтобы получить «все» присвоенные атрибуты и решить, какие атрибуты вам нужно получить.

-jim