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

Public Instance Methods

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

Create a per-connection unique name.

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

Should we reset the connection?

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

Start our ldap connection.

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