From 597e9f2358677c94ec0fee9e55c5c9ebcc869a6c Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 19 Sep 2007 16:35:26 +0000
Subject: [PATCH] When the user provides both the global administrator and the server specific authentication in non-interactive mode when enabling replication, try if the global administrator authentication can be used and prefer it to the server specific one.
---
opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java | 44 ++++++++++++++++++++++++++++++++++++--------
1 files changed, 36 insertions(+), 8 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java b/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
index 4259fa9..191740b 100644
--- a/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
+++ b/opends/src/guitools/org/opends/guitools/replicationcli/ReplicationCliMain.java
@@ -1523,10 +1523,24 @@
}
else
{
- String bindDn = getValue(argParser.getBindDn1(),
- argParser.getDefaultBindDn1());
- uData.setBindDn1(bindDn);
- uData.setPwd1(pwd1);
+ // Best-effort: try to use admin, if it does not work, use bind DN.
+ try
+ {
+ InitialLdapContext ctx = createContext(uData.getHostName1(),
+ uData.getPort1(), uData.useSSL1(), uData.useStartTLS1(),
+ ADSContext.getAdministratorDN(adminUid), adminPwd,
+ getTrustManager());
+ uData.setBindDn1(ADSContext.getAdministratorDN(adminUid));
+ uData.setPwd1(adminPwd);
+ ctx.close();
+ }
+ catch (Throwable t)
+ {
+ String bindDn = getValue(argParser.getBindDn1(),
+ argParser.getDefaultBindDn1());
+ uData.setBindDn1(bindDn);
+ uData.setPwd1(pwd1);
+ }
}
int replicationPort1 = getValue(argParser.getReplicationPort1(),
argParser.getDefaultReplicationPort1());
@@ -1548,10 +1562,24 @@
}
else
{
- String bindDn = getValue(argParser.getBindDn2(),
- argParser.getDefaultBindDn2());
- uData.setBindDn2(bindDn);
- uData.setPwd2(pwd2);
+ // Best-effort: try to use admin, if it does not work, use bind DN.
+ try
+ {
+ InitialLdapContext ctx = createContext(uData.getHostName2(),
+ uData.getPort2(), uData.useSSL2(), uData.useStartTLS2(),
+ ADSContext.getAdministratorDN(adminUid), adminPwd,
+ getTrustManager());
+ uData.setBindDn2(ADSContext.getAdministratorDN(adminUid));
+ uData.setPwd2(adminPwd);
+ ctx.close();
+ }
+ catch (Throwable t)
+ {
+ String bindDn = getValue(argParser.getBindDn2(),
+ argParser.getDefaultBindDn2());
+ uData.setBindDn2(bindDn);
+ uData.setPwd2(pwd2);
+ }
}
int replicationPort2 = getValue(argParser.getReplicationPort2(),
argParser.getDefaultReplicationPort2());
--
Gitblit v1.10.0