class Puppet::Util::Ldap::Connection

Attributes

connection[R]
host[RW]
password[RW]
port[RW]
reset[RW]
ssl[RW]
user[RW]

Public Class Methods

instance() click to toggle source

Return a default connection, using our default settings.

   # File lib/puppet/util/ldap/connection.rb
 9 def self.instance
10   ssl = if Puppet[:ldaptls]
11     :tls
12       elsif Puppet[:ldapssl]
13         true
14       else
15         false
16       end
17 
18   options = {}
19   options[:ssl] = ssl
20   user = Puppet.settings[:ldapuser]
21   if user && user != ""
22     options[:user] = user
23     pass = Puppet.settings[:ldappassword]
24     if pass && pass != ""
25       options[:password] = pass
26     end
27   end
28 
29   new(Puppet[:ldapserver], Puppet[:ldapport], options)
30 end
new(host, port, user: nil, password: nil, reset: nil, ssl: nil) click to toggle source
   # File lib/puppet/util/ldap/connection.rb
36 def initialize(host, port, user: nil, password: nil, reset: nil, ssl: nil)
37   raise Puppet::Error, _("Could not set up LDAP Connection: Missing ruby/ldap libraries") unless Puppet.features.ldap?
38 
39   @host = host
40   @port = port
41   @user = user
42   @password = password
43   @reset = reset
44   @ssl = ssl
45 end

Public Instance Methods

close() click to toggle source
   # File lib/puppet/util/ldap/connection.rb
32 def close
33   connection.unbind if connection.bound?
34 end
name() click to toggle source

Create a per-connection unique name.

   # File lib/puppet/util/ldap/connection.rb
48 def name
49   [host, port, user, password, ssl].collect { |p| p.to_s }.join("/")
50 end
reset?() click to toggle source

Should we reset the connection?

   # File lib/puppet/util/ldap/connection.rb
53 def reset?
54   reset
55 end
start() click to toggle source

Start our ldap connection.

   # File lib/puppet/util/ldap/connection.rb
58 def start
59     case ssl
60     when :tls
61       @connection = LDAP::SSLConn.new(host, port, true)
62     when true
63       @connection = LDAP::SSLConn.new(host, port)
64     else
65       @connection = LDAP::Conn.new(host, port)
66     end
67     @connection.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
68     @connection.set_option(LDAP::LDAP_OPT_REFERRALS, LDAP::LDAP_OPT_ON)
69     @connection.simple_bind(user, password)
70 rescue => detail
71     raise Puppet::Error, _("Could not connect to LDAP: %{detail}") % { detail: detail }, detail.backtrace
72 end