Class: LogStash::Inputs::NetLdap
- Inherits:
-
Base
- Object
- Base
- LogStash::Inputs::NetLdap
- Defined in:
- lib/logstash/inputs/netldap.rb
Overview
Performs a LDAP search using net-ldap.
Usage :
input
ldap{
host => "myLdapHost"
port => 389
dn => "myDn"
password => "myPassword"
base => "ou=people,dc=gouv,dc=fr"
filter => [{field=>"field1" value=>"value1", value=>"value2"
attrs => ['uid', 'mail', 'sn', 'cn']
}
}
Instance Method Summary collapse
Instance Method Details
#register ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/logstash/inputs/netldap.rb', line 60 def register @host = Socket.gethostname if @anonymous auth = { :method => :anonymous} else if @dn.nil? or @password.nil? raise(LogStash::ConfigurationError, ":dn and :password must be set when bind is not anonymous.") end auth = { :method => :simple, :username => @dn, :password => @password.value } end @conn = Net::LDAP.new :host => @ldap_host, :port => @port, :auth => auth end |
#run(queue) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/logstash/inputs/netldap.rb', line 80 def run(queue) # Filters def finalFilter = "" # need to initialize this outside the each @filters.each.with_index do |hashFilter, index| tmpFilter = Net::LDAP::Filter.eq(hashFilter['field'], hashFilter['value']) case index when 0 finalFilter = tmpFilter else finalFilter = Net::LDAP::Filter.join(finalFilter, tmpFilter) end end #filter = Net::LDAP::Filter.eq("objectclass", "inetorgperson") @conn.search(:base => @base, :filter => finalFilter, :attributes => @attrs) do |entry| # event = LogStash::Event::new event = LogStash::Event.new() decorate(event) entry.each do |attribute, value| if value.count() > 1 event.set("#{attribute}", value) else event.set("#{attribute}", value.first) end end queue << event end end |