Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Java + AD (org.ldaptive)  [new]
f9n6001
Member

Откуда: все мы из одного места
Сообщений: 1023
Здравствуйте.

Кто-нибудь пробовал использовать у себя эту библиотеку? Я хоть убей, не могу заставить ее работать.
Вот этот код упорно печатает в консоль "0"
+
import org.ldaptive.*;

public class Main {

    public static void main(String[] args) throws LdapException {

        PooledConnectionFactory cf = PooledConnectionFactory.builder()
                .config(ConnectionConfig.builder()
                        .url("ldap://teplo.local:389")
                        .build())
                .min(2)
                .max(5)
                .build();
        cf.initialize();

        SearchOperation search = new SearchOperation(cf, "dc=teplo,dc=local");
        SearchResponse response = search.execute(SearchRequest.builder()
                .dn("OU=IT,OU=Security,OU=Departments,DC=teplo,DC=local")
                .filter("(&(objectclass=user)(objectcategory=person))")
                .returnAttributes("distinguishedName", "cn")
                .build());
        System.out.println(response.entrySize());

    }
}


В тот время, как этот - как и положено "19"

+
strDomainDN = "OU=IT,OU=Security,OU=Departments,DC=teplo,DC=local"

strBase   =  "<LDAP://" & strDomainDN & ">;"
strFilter = "(&(objectclass=user)(objectcategory=person));"
strAttrs  = "distinguishedName,cn;"
strScope  = "subtree"
set objConn = CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
set objRS = objConn.Execute(strBase & strFilter & strAttrs & strScope)
WScript.Echo objRS.RecordCount


что я делаю не так?
26 май 21, 15:10    [22327510]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
А если фильтр убрать?

.filter("(&(objectclass=user)(objectcategory=person))")
26 май 21, 15:21    [22327516]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 2016
f9n6001,

scope = subtree задать пробовали?
https://www.ldaptive.org/javadocs/org/ldaptive/SearchRequest.html#setSearchScope(org.ldaptive.SearchScope)
https://www.ldaptive.org/javadocs/org/ldaptive/SearchRequest.Builder.html#scope(org.ldaptive.SearchScope)

Сообщение было отредактировано: 26 май 21, 15:43
26 май 21, 15:50    [22327533]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
f9n6001
Member

Откуда: все мы из одного места
Сообщений: 1023
mayton,
mayton
А если фильтр убрать?


Caused by: java.lang.NullPointerException: No search filter defined in org.ldaptive.SearchRequest@-1290794881::controls=null, 
dn=OU=IT,OU=Security,OU=Departments,DC=teplo,DC=local, scope=SUBTREE, aliases=NEVER, sizeLimit=0,
timeLimit=PT0S, typesOnly=false, filter=null, returnAttributes=[distinguishedName, cn], binaryAttributes=null

Lelouch
f9n6001,
scope = subtree задать пробовали?


Так вон же он выше: scope=SUBTREE
26 май 21, 16:59    [22327573]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
f9n6001
mayton,
mayton
А если фильтр убрать?


Caused by: java.lang.NullPointerException: No search filter defined in org.ldaptive.SearchRequest@-1290794881::controls=null, 
dn=OU=IT,OU=Security,OU=Departments,DC=teplo,DC=local, scope=SUBTREE, aliases=NEVER, sizeLimit=0,
timeLimit=PT0S, typesOnly=false, filter=null, returnAttributes=[distinguishedName, cn], binaryAttributes=null

Lelouch
f9n6001,
scope = subtree задать пробовали?


Так вон же он выше: scope=SUBTREE

Ну что я могу сказать. Надо искать какое-то последовательное приближение к 19 строкам. Кроме как - варьировать
параметры - больше ничего в голову не приходит.
26 май 21, 17:22    [22327584]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
f9n6001
Member

Откуда: все мы из одного места
Сообщений: 1023
Вообще, чутье подсказывает, что проблема в авторизации. Но почему нет сообщения об ошибке? И почему запрос не выполняется в контексте текущего пользователя? Получается такая себе библиотека
26 май 21, 18:08    [22327607]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
f9n6001,

В любой либе должны быть демки. Начинать с них.
26 май 21, 18:50    [22327630]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
А есть в интернетах сервер LDAP открытый для доступа? Для тренировок.
26 май 21, 18:52    [22327632]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
mayton,
Мне кажется, одно дело с внешней сети. И другое внутри сети с LDAP например в AD
26 май 21, 19:47    [22327657]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
f9n6001
Member

Откуда: все мы из одного места
Сообщений: 1023
PetroNotC Sharp,

кабы все работало как в тех демках, я бы и не спрашивал. Просто подумал, что может быть кто-нибудь уже заморачивался с работой с AD из java и имеет опыт...
26 май 21, 20:25    [22327672]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
f9n6001
Member

Откуда: все мы из одного места
Сообщений: 1023
вот вроде бы хорошая библиотека
https://ldap.com/unboundid-ldap-sdk-for-java/
Завтра надо будет покопать
26 май 21, 21:01    [22327681]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 2016
f9n6001
mayton,
mayton
А если фильтр убрать?


Caused by: java.lang.NullPointerException: No search filter defined in org.ldaptive.SearchRequest@-1290794881::controls=null, 
dn=OU=IT,OU=Security,OU=Departments,DC=teplo,DC=local, scope=SUBTREE, aliases=NEVER, sizeLimit=0,
timeLimit=PT0S, typesOnly=false, filter=null, returnAttributes=[distinguishedName, cn], binaryAttributes=null

Lelouch
f9n6001,
scope = subtree задать пробовали?


Так вон же он выше: scope=SUBTREE


Где «выше» в Java коде у вас subtree?
Увидел, в ошибке.

Сообщение было отредактировано: 26 май 21, 21:26
26 май 21, 21:34    [22327692]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 2016
f9n6001,

Что будет, если не указывать baseDn в SearchOperation?
Я к сожалению пользовался только 1й версией ldaptive, проблем (кроме поиска по Sid) не было
26 май 21, 21:39    [22327694]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
f9n6001
Member

Откуда: все мы из одного места
Сообщений: 1023
Lelouch,


Lelouch
Что будет, если не указывать baseDn в SearchOperation?


К сообщению приложен файл. Размер - 71Kb
26 май 21, 22:58    [22327727]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 2016
f9n6001,

Скрины - это огонь.
Покажите, что вернет response.toString();
Лично у меня при копировании вашего кода (и изменении адреса ldap и dn на корректный для меня) возвращает
 LdapErr: DSID-0C090A5C, comment: In order to perform this operation a successful bind must be completed on the connection
Bind в моем случае - это аутентификация
Вот тут есть пример https://www.ldaptive.org (раздел Binding)

Сообщение было отредактировано: 27 май 21, 00:01
27 май 21, 00:04    [22327746]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
f9n6001
Member

Откуда: все мы из одного места
Сообщений: 1023
Lelouch,

f9n6001
Вообще, чутье подсказывает, что проблема в авторизации. Но почему нет сообщения об ошибке? И почему запрос не выполняется в контексте текущего пользователя? Получается такая себе библиотека


Заработало. Но получатся, что нужно держать учетные данные в открытом виде...
27 май 21, 08:48    [22327793]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 2016
f9n6001
Lelouch,

f9n6001
Вообще, чутье подсказывает, что проблема в авторизации. Но почему нет сообщения об ошибке? И почему запрос не выполняется в контексте текущего пользователя? Получается такая себе библиотека


Заработало. Но получатся, что нужно держать учетные данные в открытом виде...

- Но почему нет сообщения об ошибке? - в самом конце страницы в отличиях версии 1 от версии 2 написано
http://www.ldaptive.org
Exceptions occur for I/O or configuration related problems, not LDAP server messages. To configure exception behavior see setThrowCondition on operations and throwIf on handles.
27 май 21, 11:05    [22327843]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
Garrick
Member

Откуда: Москва
Сообщений: 3106
f9n6001
вот вроде бы хорошая библиотека
https://ldap.com/unboundid-ldap-sdk-for-java/
Завтра надо будет покопать

Зачем вообще какая-то библиотека, там и так всё просто и прозрачно. Поищите в Интернете какие-нибудь примеры, учебники "JAVA JNDI LDAP" - их полно.
27 май 21, 11:05    [22327844]     Ответить | Цитировать Сообщить модератору
 Re: Java + AD (org.ldaptive)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
Garrick,
+1
27 май 21, 11:10    [22327848]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить