コード例 #1
0
  /**
   * Verification du login.
   *
   * @return code correspondant : 0 : Pas de synchronisation avec le serveur ldap. 1 : Le login
   *     existe dans la base ldap. 2 : Le login n'existe pas dans la base ldap.
   */
  private int CheckBeforeConnection(String user) throws NamingException {
    ContextSource ldapContextSourceAdmin = null;
    try {
      // Connection en tant qu'administrateur pour effectuer les tests.
      ldapContextSourceAdmin = LdapContextSourceFactory.getLdapContextSource("admin", null);
    } catch (Exception e) {
      return 0;
    }

    if (ldapContextSourceAdmin == null) return 0;

    LdapTemplate ldapTemplateAdmin = new LdapTemplate();
    ldapTemplateAdmin.setContextSource(ldapContextSourceAdmin);

    OperatorDao daoAdmin = new OperatorDao();
    daoAdmin.setLdapTemplate(ldapTemplateAdmin);

    /* On teste que le serveur ldap soit bien démarré. */
    try {
      daoAdmin.findAll("sn");
    } catch (Exception e) {
      return 3;
    }

    /* On verifie que le login existe. */
    Operator_Ldap operator = null;
    try {
      operator = daoAdmin.findByPrimaryKey(user);
      daoAdmin.disconnection();
    } catch (Exception e) {
    }
    if ((operator != null) && (operator.getSn().equals(user))) {
      return 1;
    }
    // Sinon le login n'existe pas.
    return 2;
  }
コード例 #2
0
  /**
   * Synchronisation de la table Operator avec le serveur Ldap. On met à jour ou créé les contacts.
   *
   * @param oldLogin : Eventuel ancien login (en cas de modification).
   * @param fullname : Nom commun
   * @param name : Nom de login
   * @param pass : Mot de passe
   */
  public void synchronisation(String OldLogin, String fullname, String login, String pass) {
    OperatorDao operatorDao = this.simpleConnection();
    Boolean exists;

    Operator_Ldap operator = new Operator_Ldap();
    if (login == null && OldLogin != null) login = OldLogin;

    if (fullname == null) fullname = login;
    operator.setCn(fullname);
    operator.setSn(login);

    if (pass != null) operator.setUserPassword(pass);
    else operator.setUserPassword("");

    if (OldLogin == login || OldLogin == null) {
      // On test si l'utilisateur a déjà été référencé dans ldap.
      try {
        operatorDao.findByPrimaryKey(login);
        exists = true;
      } catch (Exception e) {
        exists = false;
      }

      if (exists == true && login.equals(operator.getSn())) {
        Name dn = buildDn(operator);
        ldapTemplate.rebind(dn, null, buildAttributes(operator));
      } else {
        operatorDao.createOnePerson(operator);
      }
    } else {
      Name dn = buildDn(OldLogin);
      ldapTemplate.unbind(dn);
      operatorDao.createOnePerson(operator);
    }
    operatorDao.disconnection();
  }