Partage
  • Partager sur Facebook
  • Partager sur Twitter

[LDAP: error code 4 - Sizelimit Exceeded]

Sujet résolu
    22 mai 2019 à 13:43:35

    Salut tout le monde

    Après plusieurs recherche je ne trouve pas la solution à ce problème, tout se passe bien sauf que dès que je souhaite afficher tout les utilisateurs de l'AD, et bien un moment donné BIM : [LDAP: error code 4 - Sizelimit Exceeded]

    Une solution ?

    Merci d'avance

    Voici mon code: 

    int pageSize = 30;
          byte[] cookie = null;
          ctx.setRequestControls(new Control[] { new PagedResultsControl(pageSize,
              Control.NONCRITICAL) });
          int total;
            JSONArray dataArray = new JSONArray();
          do {
            /* perform the search */
            
            String filter= "(&(objectClass=user))";
            SearchControls searchCtrls = new SearchControls();
            searchCtrls.setSearchScope(SearchControls.SUBTREE_SCOPE); 
    
            NamingEnumeration results = ctx.search(toDC(domain),filter,searchCtrls);
            
            
            
            
            
            /* for each entry print out name + all attrs and values */
            while (results != null && results.hasMore()) {
              SearchResult result = (SearchResult) results.next();
                String name = result.getName();
                
                // CN=nicolas radoux,OU=Users,OU=Informatique,OU=CPASLAB                
                Pattern p = Pattern.compile("CN=([^,]+),OU=Users,OU=([^,]+).*OU=CPAS");
                Matcher matcher = p.matcher(name);
                if(matcher.find()) {
                    JSONObject object = new JSONObject();
                    String ou = matcher.group(2);
                    String sAMAccountName = (String) result.getAttributes().get("sAMAccountName").get(0);
                    String cn = (String) result.getAttributes().get("cn").get(0);
                    byte[] guid = result.getAttributes().get("objectGUID").get(0).toString().getBytes();
                    
                    
                    
                    //String email = (String) result.getAttributes().get("mail").get(0);
                    String hex = new BigInteger(1,guid).toString(16);
    
                     
                    object.put("sAMAccountName", sAMAccountName);
                    object.put("CN", cn);
                    object.put("OU", ou);
                    object.put("GUID", hex);
                    //object.put("email", email);
                    System.out.println(sAMAccountName + " : " + cn);
                    
                    
                    String query =  "UPDATE cpas.personnel SET guid = ? \n" +
                                    "WHERE concat(nom,' ',prenom) like concat('%',?,'%')";
                    
                    PreparedStatement ps = connection.prepareStatement(query);
                    ps.setString(1, hex);
                    ps.setString(2, cn);
                    ps.executeUpdate();
                    ps.close();
                    dataArray.put(object);
                }
            }
    
            // Examine the paged results control response
            Control[] controls = ctx.getResponseControls();
            if (controls != null) {
              for (int i = 0; i < controls.length; i++) {
                if (controls[i] instanceof PagedResultsResponseControl) {
                  PagedResultsResponseControl prrc = (PagedResultsResponseControl) controls[i];
                  total = prrc.getResultSize();
                  if (total != 0) {
                    System.out.println("***************** END-OF-PAGE "
                        + "(total : " + total + ") *****************\n");
                  } else {
                    System.out.println("***************** END-OF-PAGE "
                        + "(total: unknown) ***************\n");
                  }
                  cookie = prrc.getCookie();
                }
              }
            } else {
              System.out.println("No controls were sent from the server");
            }
            // Re-activate paged results
            ctx.setRequestControls(new Control[] { new PagedResultsControl(
                pageSize, cookie, Control.CRITICAL) });
    
          } while (cookie != null);
    
          ctx.close();

    -
    Edité par unchained77 22 mai 2019 à 15:54:55

    • Partager sur Facebook
    • Partager sur Twitter

    [LDAP: error code 4 - Sizelimit Exceeded]

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown