begin process at 2012 02 09 08:33:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Systeme

 > RECHERCHE LDAP AVEC PAGINATION

RECHERCHE LDAP AVEC PAGINATION


 Information sur la source

Note :
Aucune note
Catégorie :Systeme Classé sous :LDAP, PagedResultsControl, pagination, JNDI, LdapContext Niveau :Expert Date de création :04/05/2009 Date de mise à jour :04/05/2009 22:09:22 Vu :4 518

Auteur : caiman125

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

cette sources permet de faire une recherche dans un annuaire LDAP avec une résultat paginer. sa signifie que l'erreur
'javax.naming.SizeLimitExceededException: [LDAP: error code 4 - Sizelimit Exceeded]; remaining name  ' ne s'affiche plus.

Source

  • PagedResultsControlJndiClient
  • /**
  • *
  • * PagedResultsControlJndiClient.java
  • * Sample code to demostrate how Paged Results Control works.
  • *
  • */
  • import javax.naming.*;
  • import javax.naming.directory.*;
  • import javax.naming.ldap.*;
  • import java.util.Hashtable;
  • public class PagedResultsControlJndiClient
  • {
  • static final String PAGED_RESULT_CONTROL_OID = "1.2.840.113556.1.4.319";
  • public static void main(String[] args)
  • {
  • Hashtable env = new Hashtable();
  • env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
  • // Note: Active Directory Server supports Paged Results Control
  • // SunOne does not supports Paged Results Control but it supports
  • // Virtual List View Control instead.
  • env.put(Context.PROVIDER_URL, "ldap://myAD.mydomain.com:389");
  • env.put(Context.SECURITY_AUTHENTICATION, "simple");
  • env.put(Context.SECURITY_PRINCIPAL, "administrator@mydomain.com");
  • env.put(Context.SECURITY_CREDENTIALS, "mypassword");
  • try{
  • /* Open an LDAP connection for the provided principal and credentials */
  • LdapContext ctx = new InitialLdapContext(env, null);
  • System.out.println("Initial binding done!");
  • /* Query the server to see if the paged result control is supported */
  • if(!isPagedResultControlSupported(ctx)){
  • System.out.println("The server does not support Paged Results Control.");
  • System.exit(1);
  • }
  • /* Activate paged results */
  • int pageSize = 5;
  • byte[] cookie = null;
  • int total;
  • ctx.setRequestControls(
  • new Control[]{new PagedResultsControl(pageSize, Control.CRITICAL)});
  • System.out.println("Paged control set!");
  • int count = 0;
  • while(true){
  • count++;
  • System.err.println("Search loop count = " + count);
  • SearchControls ctls = new SearchControls();
  • ctls.setSearchScope(SearchControls.ONELEVEL_SCOPE);
  • ctls.setCountLimit(0);
  • // Perform the search
  • NamingEnumeration results = ctx.search("dc=mydomain,dc=com",
  • "(objectclass=*)", ctls);
  • try{
  • // Iterate over a batch of search results
  • while (results != null && results.hasMore()) {
  • // Display an entry
  • SearchResult entry = (SearchResult)results.next();
  • System.out.println("entryDN=" + entry.getName());
  • }
  • }catch(Exception pe){
  • System.out.println(pe.toString()); // Patial Result Exception
  • }
  • // Examine the paged results control response
  • Control[] controls = ctx.getResponseControls();
  • if(controls!=null){
  • for(int k = 0; k<controls.length; k++){
  • if(controls[k] instanceof PagedResultsResponseControl){
  • PagedResultsResponseControl prrc =
  • (PagedResultsResponseControl)controls[k];
  • total = prrc.getResultSize();
  • cookie = prrc.getCookie();
  • }else{
  • // Handle other response controls (if any)
  • }
  • }
  • }
  • if(cookie==null)
  • break;
  • // Re-activate paged results
  • ctx.setRequestControls(new Control[]{
  • new PagedResultsControl(pageSize, cookie, Control.CRITICAL)});
  • }
  • // Close the LDAP association
  • ctx.close();
  • }catch (Exception e){
  • e.printStackTrace();
  • }
  • }
  • /**
  • * Is paged result control supported?
  • *
  • * Query the rootDSE object to find out if the paged result control
  • * is supported.
  • */
  • static boolean isPagedResultControlSupported(LdapContext ctx)
  • throws NamingException
  • {
  • SearchControls ctl = new SearchControls();
  • ctl.setReturningAttributes(new String[]{"supportedControl"});
  • ctl.setSearchScope(SearchControls.OBJECT_SCOPE);
  • /* search for the rootDSE object */
  • NamingEnumeration results = ctx.search("", "(objectClass=*)", ctl);
  • while(results.hasMore()){
  • SearchResult entry = (SearchResult)results.next();
  • NamingEnumeration attrs = entry.getAttributes().getAll();
  • while (attrs.hasMore()){
  • Attribute attr = (Attribute)attrs.next();
  • NamingEnumeration vals = attr.getAll();
  • while (vals.hasMore()){
  • String value = (String) vals.next();
  • if(value.equals(PAGED_RESULT_CONTROL_OID))
  • return true;
  • }
  • }
  • }
  • return false;
  • }
  • }
PagedResultsControlJndiClient
/**
 *
 * PagedResultsControlJndiClient.java
 * Sample code to demostrate how Paged Results Control works.
 *
 */
 
import javax.naming.*;
import javax.naming.directory.*;
import javax.naming.ldap.*;

import java.util.Hashtable;

public class PagedResultsControlJndiClient
{
   
  static final String  PAGED_RESULT_CONTROL_OID = "1.2.840.113556.1.4.319";
   
  public static void main(String[] args)
  {
    Hashtable env = new Hashtable();
       
    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
       
    // Note: Active Directory Server supports Paged Results Control
    //       SunOne does not supports Paged Results Control but it supports
    //       Virtual List View Control instead.
    env.put(Context.PROVIDER_URL, "ldap://myAD.mydomain.com:389");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "administrator@mydomain.com");
    env.put(Context.SECURITY_CREDENTIALS, "mypassword");
       
    try{
       
      /* Open an LDAP connection for the provided principal and credentials */
      LdapContext ctx = new InitialLdapContext(env, null);
      System.out.println("Initial binding done!");
           
      /* Query the server to see if the paged result control is supported */
      if(!isPagedResultControlSupported(ctx)){
         System.out.println("The server does not support Paged Results Control.");
         System.exit(1);
      }

      /* Activate paged results */
      int pageSize = 5;
      byte[] cookie = null;
      int total;
           
      ctx.setRequestControls(
              new Control[]{new PagedResultsControl(pageSize, Control.CRITICAL)});
      System.out.println("Paged control set!");

      int count = 0;
      while(true){
        count++;
        System.err.println("Search loop count = " + count);
                   
        SearchControls ctls = new SearchControls();
        ctls.setSearchScope(SearchControls.ONELEVEL_SCOPE);
        ctls.setCountLimit(0);
        // Perform the search
        NamingEnumeration results = ctx.search("dc=mydomain,dc=com",
                                               "(objectclass=*)", ctls);
               
        try{
          // Iterate over a batch of search results
          while (results != null && results.hasMore()) {
              // Display an entry
              SearchResult entry = (SearchResult)results.next();
              System.out.println("entryDN=" + entry.getName());
          }
        }catch(Exception pe){
          System.out.println(pe.toString());  // Patial Result Exception
        }
               
        // Examine the paged results control response
        Control[] controls = ctx.getResponseControls();
        if(controls!=null){
          for(int k = 0; k<controls.length; k++){
            if(controls[k] instanceof PagedResultsResponseControl){
              PagedResultsResponseControl prrc =
                       (PagedResultsResponseControl)controls[k];
              total = prrc.getResultSize();
              cookie = prrc.getCookie();
            }else{
              // Handle other response controls (if any)
            }
          }
        }
   
        if(cookie==null)
          break;
               
         // Re-activate paged results
         ctx.setRequestControls(new Control[]{
             new PagedResultsControl(pageSize, cookie, Control.CRITICAL)});
       }
   
       // Close the LDAP association
       ctx.close();
     }catch (Exception e){
       e.printStackTrace();
     }
  }

  /**
   * Is paged result control supported?
   *
   * Query the rootDSE object to find out if the paged result control
   * is supported.
   */
  static boolean isPagedResultControlSupported(LdapContext ctx)
                throws NamingException
  {
    SearchControls ctl = new SearchControls();
    ctl.setReturningAttributes(new String[]{"supportedControl"});
    ctl.setSearchScope(SearchControls.OBJECT_SCOPE);

    /* search for the rootDSE object */
    NamingEnumeration results = ctx.search("", "(objectClass=*)", ctl);

    while(results.hasMore()){
      SearchResult entry = (SearchResult)results.next();
      NamingEnumeration attrs = entry.getAttributes().getAll();
      while (attrs.hasMore()){
          Attribute attr = (Attribute)attrs.next();
           NamingEnumeration vals = attr.getAll();
        while (vals.hasMore()){
        String value = (String) vals.next();
        if(value.equals(PAGED_RESULT_CONTROL_OID))
           return true;
        }
      }
    }
    return false;
  }

}



 Historique

04 mai 2009 22:09:22 :
plus de précision dans le type d'erreur retourner sans cette code

 Sources de la même categorie

Source avec Zip Source avec une capture INVITE DE COMMANDES DOS par Julien39
Source avec Zip TASK_KILLER par COUNDOULIBZO
Source avec Zip HYPERTERMINAL EN JAVA par naf87
Source avec Zip Source avec une capture ZFS GESTION DU BOOTLOADER par 78.ultima
Source avec Zip Source avec une capture CLASSEXPLORER : EXPLORATEUR DE CLASSES JAVA par Chatbour

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

probléme avec jndi [ par dexterovitch ] voila parés avoir fait un fonction qui affiche ce que j'ai sur ma base de données LDAP je me suis attaquer a celle pour inserer des enregistrement seu [LDAP Active Directory] connexion ? [ par HFanny ] Bonjour à tous,J'ai fait quelques recherches mais je n'arrive pas à comprendre comment se connecter à un annuaire LDAP en java et récupérer des infos. connexion a LDAP avec java [ par himachalene ] bonjour je travailles sur une application java pour authentifier les utilisateurs via ldap. je dois d'abord faire la connexion a ldap a l'aide de JNDI JNDI / OpenLDAP [ par Ombitious_Developper ] Salut tous: Je suis en train essayer de faire marcher un programme qui utilises l'API JNDI. Malheureusement, rien ne marche. Je travaille avec OpenLDA ldap policy [ par ismailfk ] Bonjour les amis,en fait, je veux utiliser les policies dans la base ldap exemple je veux vérifier que la longueur de mots de passe ne dépasse pas 7 c Récupérer CRL via LDAP [ par bond_never_die ] web service en java [ par salinalamri ] bonjour  je dois devlopper un web service  en java qui gére l'authentification Toutes les données (login, mot de passe) sont stockées sur une base ope JSP : authentification ldap [ par kam81 ] Bonjour,Je dispose d'une page JSP pour l'authentification (user , password), je voudrais verifier l'authentification au niveau de mon annuaire Active LDAP+COCOON [ par delivrance84 ] Bonjour, J'ai fait pas mal de recherche  mais je n'arrive toujours pas à trouver comment transformer d'un fichier ldap en pdf par cocoonPeut-être qu triage+pagination en java [ par senateur17 ] Salut tout le monde , j'ai une requete afficher en JSP mais le probleme c'est de trier la liste afficher par ordre croissant ou décroissant en fonctio


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,732 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales