summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG2
-rw-r--r--lib/puppet/util/ldap/connection.rb12
-rwxr-xr-xspec/unit/util/ldap/connection.rb13
3 files changed, 26 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 303b1155d..404f7fb95 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,7 @@
0.24.x
Fixed #1572 -- file purging now fails if remote sources do not exist.
+
+ Fixed #1521 -- ldap user and password are now used with the default connection.
Fixed issues with file descriptors leaking into subprocesses
diff --git a/lib/puppet/util/ldap/connection.rb b/lib/puppet/util/ldap/connection.rb
index f6530f853..70fe303c5 100644
--- a/lib/puppet/util/ldap/connection.rb
+++ b/lib/puppet/util/ldap/connection.rb
@@ -17,7 +17,17 @@ class Puppet::Util::Ldap::Connection
else
false
end
- new(Puppet[:ldapserver], Puppet[:ldapport], :ssl => ssl)
+
+ options = {}
+ options[:ssl] = ssl
+ if user = Puppet.settings[:ldapuser] and user != ""
+ options[:user] = user
+ if pass = Puppet.settings[:ldappassword] and pass != ""
+ options[:password] = pass
+ end
+ end
+
+ new(Puppet[:ldapserver], Puppet[:ldapport], options)
end
def close
diff --git a/spec/unit/util/ldap/connection.rb b/spec/unit/util/ldap/connection.rb
index 9392466c7..8bc85a620 100755
--- a/spec/unit/util/ldap/connection.rb
+++ b/spec/unit/util/ldap/connection.rb
@@ -152,5 +152,18 @@ describe Puppet::Util::Ldap::Connection do
Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:ssl] == false }
Puppet::Util::Ldap::Connection.instance
end
+
+ it "should set the ldapuser if one is set" do
+ Puppet.settings.expects(:value).with(:ldapuser).returns "foo"
+ Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:user] == "foo" }
+ Puppet::Util::Ldap::Connection.instance
+ end
+
+ it "should set the ldapuser and ldappassword if both is set" do
+ Puppet.settings.expects(:value).with(:ldapuser).returns "foo"
+ Puppet.settings.expects(:value).with(:ldappassword).returns "bar"
+ Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:user] == "foo" and options[:password] == "bar" }
+ Puppet::Util::Ldap::Connection.instance
+ end
end
end