Witam,
Dowiedzialem sie, ze aktualnie jedna z lepszych bibliotek do obslugi LDAP dla Javy jest UnboundID SDK: https://www.unboundid.com/products/ldapsdk/
Zbudowalem prosta aplikacje Javy SE, ktora robila dokladnie to co chcialem, czyli wyszukiwala, dodawala, modyfikowala i usuwala odpowiednie rekordy. Bylo to rzeczywiscie proste i logiczne.
Niestety, stateless session bean nie pozwala na otworzenie polaczenia do serwera LDAP. Zalezy mi na utworzeniu podobnego DAO jak to do bazy danych, tylko zarzadzanego z poziomu EJB, ktore bede potem wstrzykiwal do innych beanow EJB jak i aplikacji internetowej, w zaleznosci od potrzeb.
Czy z UnboundID LDAP API jest to mozliwe, czy tez jestem skazany na nieszczesny standard, czyli JNDI/Ldap i API od Java EE (javax.naming.directory http://docs.oracle.com/javase/6/docs/api/javax/naming/directory/package-summary.html)?
Moj serwer aplikacji to Glassfish 4.0. Ponac javax.naming.directory nie jest API zalecanym w nowym kodzie (zamiast tego wszyscy polecaja UnboundID). Jest natomiast API, ktore moge bez problemu wstrzyknac do EJB poprzez ustawienie odpowiedniego polaczenia w domenie Glassfisha, a nastepnie wyszukanie go.
Nastepujaca operacja nie dziala w stateless ejb session beanie:
LDAPConnection connection = new LDAPConnection("server.example.com", 389,
"uid=test.user,ou=People,dc=example,dc=com", "password");
Zrodlo: https://www.unboundid.com/products/ldapsdk/docs/advantages/ease-of-use.php
Efekt: kod kompiluje sie, ale nie deployuje, poniewaz bean z takim obiektym nie jest prawidlowym session beanem.
Bede wdzieczny za wskazowki, w ktora strone isc, bo troche sie pogubilem.
Pozdrawiam,