Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Glassfish и ActiveDirectory / 11 сообщений из 11, страница 1 из 1
22.06.2016, 15:24
    #39260438
ditban
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
Добрый день, коллеги.
Мне необходимо настроить соединение с ActiveDirectory. Но! не для авторизации пользователей на сервере приложений, а для того, чтобы программнор осуществлять поиск по ActiveDirectory. Делаю так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
@Startup
@Singleton
public class JdapHelper {

    private LdapContext ctx;
    String rootSearchBase="DC=dc,DC=local";
     
    @PostConstruct
    public void init() 
    {
       System.out.println(" class JdapHelper JdapHelper init()");
       
       String searchUserName="name";
        Hashtable env = new Hashtable();
        String adminName = "mail;
        String adminPassword = "pass";      

        String ldapURL = "ldap://url"; 
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, adminName);
        env.put(Context.SECURITY_CREDENTIALS, adminPassword);
        env.put(Context.PROVIDER_URL, ldapURL);
        env.put(Context.REFERRAL, "follow");
        
        try {
            //Создаем по заданным параметрам ldap context
            ctx = new InitialLdapContext(env, null);
        } catch (NamingException ex) {
           System.out.println(ex.fillInStackTrace());
            //Logger.getLogger(LdapHelper.class.getName()).log(Level.SEVERE, null, ex);
        }
    }



то есть делаю синглетоном, чтобы всегда висело соединение.
Возникает проблема, что соединение с Ldap отваливается по таймауту. Читаю в доках, что по умолчанию таймаута вообще нет и соединение должно сохраняться. Почему тогда у меня отваливается?
и вообще по-моему это бред. Я хочу сделать LdapConnection именно на самом сервере glassfish как мы делаем ConnectionPool для баз данных. Возможно ли так сделать?
...
Рейтинг: 0 / 0
22.06.2016, 15:28
    #39260445
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
...
Рейтинг: 0 / 0
22.06.2016, 15:51
    #39260487
ditban
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
Blazkowicz, спасибо, но там тоже задается connectionTimeOut, а мне нужно, чтобы соединение с AD было всегда.
...
Рейтинг: 0 / 0
22.06.2016, 15:54
    #39260498
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
ditbanBlazkowicz, спасибо, но там тоже задается connectionTimeOut, а мне нужно, чтобы соединение с AD было всегда.
Лучше пул включить. Соединение может прерваться по причине не зависящей от сервера и клиента.
...
Рейтинг: 0 / 0
22.06.2016, 16:03
    #39260516
ditban
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
Blazkowicz, да, насчет пула согласна. а вообще, это нормально такие вещи в синглетон записывать? мне как-то это не нравится
...
Рейтинг: 0 / 0
22.06.2016, 16:15
    #39260533
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
ditbanBlazkowicz, да, насчет пула согласна. а вообще, это нормально такие вещи в синглетон записывать? мне как-то это не нравится
А нафига тут синглтон? Если сделать обычный Stateless Session bean, то ничего не поменяется. У вас ведь нет состояния в JdapHelper
...
Рейтинг: 0 / 0
22.06.2016, 16:19
    #39260541
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
ditbanBlazkowicz, да, насчет пула согласна. а вообще, это нормально такие вещи в синглетон записывать? мне как-то это не нравится
Хотя наличие поля меня немного смущает с точки зрения жизненного цикла EJB.
...
Рейтинг: 0 / 0
22.06.2016, 16:31
    #39260555
ditban
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
Blazkowicz,

поле rootSearchBase? Я его вынесла для того, чтобы далее в этом синглетоне можно было осуществлять поиск на основе этого поля.
...
Рейтинг: 0 / 0
22.06.2016, 16:33
    #39260557
ditban
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
Blazkowicz,

Вы про private LdapContext ctx? так это само соединение. так что с состоянием. мне нужно потом по нему поиск осуществлять.
...
Рейтинг: 0 / 0
22.06.2016, 17:18
    #39260600
ditban
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
Вообще, я создала на AS realm. Можно бы оттуда всю информацию брать. Как мне найти Realm? В jndi я так понимаю его нет?
...
Рейтинг: 0 / 0
23.06.2016, 11:53
    #39260897
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Glassfish и ActiveDirectory
ditban,

AS realm на сколько я понимаю нужен для аутентификации через AS. Вы же собрались " программнор осуществлять поиск по ActiveDirectory". Что не совсем одно и то же.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Glassfish и ActiveDirectory / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]