Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > MemberOF Active directory


Автор: Kverter 21.1.2014, 11:23
Здравствуйте, возникла проблемка....вот есть некая функция 
Код

    public static void AD() throws Exception
    {

        Properties env = new Properties();
        env.setProperty(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
        env.setProperty(Context.PROVIDER_URL,PropertyReader("ldap"));
        env.setProperty(Context.SECURITY_PRINCIPAL, PropertyReader("ADlogin"));
        env.setProperty(Context.SECURITY_CREDENTIALS, PropertyReader("ADpassword"));
        Statement st = Class1.JDBCConn();
        
         DirContext groupContext = new InitialDirContext(env);
         SearchControls groupControls = new SearchControls();
         groupControls.setReturningAttributes(new String[] {"userPrincipalName","distinguishedName","memberOf"});
         groupControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
         NamingEnumeration results = groupContext.search(PropertyReader("linesearch"),"(objectCategory=user)", groupControls);
        //////////////////////////////////////////////////////////////////////////////
         SearchControls usersControls = new SearchControls();
         usersControls.setReturningAttributes(new String[] {"name"});
         usersControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
                   // Цикл по группам (Organisation Unit'ам) 
         int k =0;
                   while (results != null && results.hasMoreElements()) 
                   {
                       SearchResult result = (SearchResult) results.next();
                       Attribute attribute = result.getAttributes().get("userPrincipalName");
                       if (attribute == null) {
                           continue;
                       }
                       String groupName = (String) attribute.get();
                        //String groupDN = (String) result.getAttributes().get( "distinguishedName").get();
                         String memberOF = "";


            //System.out.println("HROUPNAME = "+groupName);
            
                       if (result.getAttributes().get("memberOf")!=null)
                       {
                     memberOF = (String) result.getAttributes().get( "memberOf").get();
                           System.out.println("HROUPNAME = "+groupName+ " memberOF = "+memberOF);
                       }
            CreateUserstables(groupName,Class1.find(groupName,st),st,memberOF);
                        k = k+1;
            
        }
         System.out.println(k);
    }



функция нормально отрабатывает, если параметр memberOF содержит не одну запись, если же в параметре несколько записей то возвращается только первая, как это поправить?нужно чтоб возвращались все записи в одной строке.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)