mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jvergara
14.09.2007 9d26dfb9884fbac1c94d776e25f381bb08a57ac2
Fix some issues in the interactive mode of dsreplication enable and dsreplication disable when the user provides values in the command-line.
2 files modified
129 ■■■■ changed files
opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java 43 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java 86 ●●●● patch | view | raw | blame | history
opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
@@ -31,7 +31,6 @@
import static org.opends.messages.AdminToolMessages.*;
import static org.opends.messages.QuickSetupMessages.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.messages.UtilityMessages.*;
import static org.opends.quicksetup.util.Utils.getFirstValue;
import static org.opends.quicksetup.util.Utils.getThrowableMsg;
@@ -568,8 +567,22 @@
    String bindDn1 = argParser.getBindDn1();
    String pwd1 = argParser.getBindPassword1();
    initializeGlobalArguments(host1, port1, useSSL1,
        useStartTLS1, adminUid, bindDn1, (pwd1 != null) ? pwd1 : adminPwd);
    String pwd = null;
    if (pwd1 != null)
    {
      pwd = pwd1;
    }
    else if (bindDn1 != null)
    {
      pwd = null;
    }
    else
    {
      pwd = adminPwd;
    }
    initializeGlobalArguments(host1, port1, useSSL1, useStartTLS1, adminUid,
        bindDn1, pwd);
    InitialLdapContext ctx1 = null;
    while ((ctx1 == null) && !cancelled)
@@ -583,11 +596,17 @@
        useStartTLS1 = ci.useStartTLS();
        host1 = ci.getHostName();
        port1 = ci.getPortNumber();
        adminUid = ci.getAdministratorUID();
        if (adminUid != null)
        if (ci.getProvidedAdminUID() != null)
        {
          adminUid = ci.getProvidedAdminUID();
          if (ci.getProvidedBindDN() == null)
          {
            // If the explicitit bind DN is not null, the password corresponds
            // to that bind DN.  We are in the case where the user provides
            // bind DN on first server and admin UID globally.
          adminPwd = ci.getBindPassword();
        }
        }
        bindDn1 = ci.getBindDN();
        pwd1 = ci.getBindPassword();
@@ -718,7 +737,6 @@
      useStartTLS2 = argParser.useStartTLS2();
      bindDn2 = argParser.getBindDn2();
      pwd2 = argParser.getBindPassword2();
      String pwd;
      if (pwd2 != null)
      {
        pwd = pwd2;
@@ -748,7 +766,11 @@
        useStartTLS2 = ci.useStartTLS();
        host2 = ci.getHostName();
        port2 = ci.getPortNumber();
        adminUid = ci.getAdministratorUID();
        if (ci.getProvidedAdminUID() != null)
        {
          adminUid = ci.getProvidedAdminUID();
          adminPwd = ci.getBindPassword();
        }
        bindDn2 = ci.getBindDN();
        pwd2 = ci.getBindPassword();
@@ -1020,8 +1042,8 @@
        useStartTLS = ci.useStartTLS();
        host = ci.getHostName();
        port = ci.getPortNumber();
        bindDn = ci.getBindDN();
        adminUid = ci.getAdministratorUID();
        bindDn = ci.getProvidedBindDN();
        adminUid = ci.getProvidedAdminUID();
        adminPwd = ci.getBindPassword();
        ctx = createInitialLdapContextInteracting(ci);
@@ -5963,6 +5985,8 @@
      argParser.getSecureArgsList().hostNameArg.addValue(hostName);
      argParser.getSecureArgsList().hostNameArg.setPresent(true);
    }
    // resetConnectionArguments does not clear the values for the port
    argParser.getSecureArgsList().portArg.clearValues();
    if (port != -1)
    {
      argParser.getSecureArgsList().portArg.addValue(String.valueOf(port));
@@ -5970,7 +5994,6 @@
    }
    else
    {
      argParser.getSecureArgsList().portArg.clearValues();
      // This is done to be able to call IntegerArgument.getIntValue()
      argParser.getSecureArgsList().portArg.addValue(
          argParser.getSecureArgsList().portArg.getDefaultValue());
opends/src/server/org/opends/server/util/cli/LDAPConnectionConsoleInteraction.java
@@ -73,7 +73,9 @@
  private String hostName;
  private int portNumber;
  private String bindDN;
  private String providedBindDN;
  private String adminUID;
  private String providedAdminUID;
  private String bindPassword;
  private KeyManager keyManager;
  private ApplicationTrustManager trustManager;
@@ -530,9 +532,25 @@
    bindDN = secureArgsList.bindDnArg.getValue();
    adminUID = secureArgsList.adminUidArg.getValue();
    final boolean useAdmin = secureArgsList.useAdminUID();
    boolean argIsPresent = useAdmin ?
        secureArgsList.adminUidArg.isPresent() :
          secureArgsList.bindDnArg.isPresent();
    if (useAdmin && secureArgsList.adminUidArg.isPresent())
    {
      providedAdminUID = adminUID;
    }
    else
    {
      providedAdminUID = null;
    }
    if ((!useAdmin || useAdminOrBindDn) &&
        secureArgsList.bindDnArg.isPresent())
    {
      providedBindDN = bindDN;
    }
    else
    {
      providedBindDN = null;
    }
    boolean argIsPresent = (providedAdminUID != null) ||
    (providedBindDN != null);
    final String tmpBindDN = bindDN;
    final String tmpAdminUID = adminUID;
    if (keyManager == null)
@@ -579,12 +597,16 @@
            if (Utils.isDn(v))
            {
              bindDN = v;
              providedBindDN = v;
              adminUID = null;
              providedAdminUID = null;
            }
            else
            {
              bindDN = null;
              providedBindDN = null;
              adminUID = v;
              providedAdminUID = v;
            }
          }
          else if (useAdmin)
@@ -592,11 +614,13 @@
            adminUID = app.readValidatedInput(
                INFO_LDAP_CONN_PROMPT_ADMINISTRATOR_UID.get(adminUID),
                callback);
            providedAdminUID = adminUID;
          }
          else
          {
            bindDN = app.readValidatedInput(INFO_LDAP_CONN_PROMPT_BIND_DN
              .get(bindDN), callback);
            providedBindDN = bindDN;
          }
        }
        catch (CLIException e)
@@ -647,24 +671,21 @@
        {
          app.println();
          Message prompt;
          if (useAdminOrBindDn)
          if (providedAdminUID != null)
          {
            if (adminUID != null)
            {
              prompt = INFO_LDAPAUTH_PASSWORD_PROMPT.get(adminUID);
            prompt = INFO_LDAPAUTH_PASSWORD_PROMPT.get(providedAdminUID);
            }
            else
          else if (providedBindDN != null)
          {
            prompt = INFO_LDAPAUTH_PASSWORD_PROMPT.get(providedBindDN);
          }
          else if (bindDN != null)
            {
              prompt = INFO_LDAPAUTH_PASSWORD_PROMPT.get(bindDN);
            }
          }
          else if (useAdmin)
          {
            prompt = INFO_LDAPAUTH_PASSWORD_PROMPT.get(adminUID);
          }
          else
          {
            prompt = INFO_LDAPAUTH_PASSWORD_PROMPT.get(bindDN);
            prompt = INFO_LDAPAUTH_PASSWORD_PROMPT.get(adminUID);
          }
          bindPassword = app.readPassword(prompt);
        }
@@ -1143,13 +1164,25 @@
    String dn;
    if (useAdminOrBindDn)
    {
      if (this.adminUID != null)
      if (providedBindDN != null)
      {
        dn = providedBindDN;
      }
      else if (providedAdminUID != null)
      {
        dn = ADSContext.getAdministratorDN(providedAdminUID);
      }
      else if (this.bindDN != null)
      {
        dn = this.bindDN;
      }
      else if (this.adminUID != null)
      {
        dn = ADSContext.getAdministratorDN(this.adminUID);
      }
      else
      {
        dn = this.bindDN;
        dn = null;
      }
    }
    else if (secureArgsList.useAdminUID())
@@ -1711,4 +1744,25 @@
   trustManagerInitialized = true;
 }
 /**
  * Returns the explicitly provided Admin UID from the user (interactively
  * or through the argument).
  * @return the explicitly provided Admin UID from the user (interactively
  * or through the argument).
  */
 public String getProvidedAdminUID()
 {
   return providedAdminUID;
 }
 /**
  * Returns the explicitly provided bind DN from the user (interactively
  * or through the argument).
  * @return the explicitly provided bind DN from the user (interactively
  * or through the argument).
  */
 public String getProvidedBindDN()
 {
   return providedBindDN;
 }
}