logstash-filter-LDAPresolve 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +14 -0
- data/lib/logstash/filters/LDAPresolve.rb +10 -6
- data/logstash-filter-LDAPresolve.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de57dc6b5130f9fd6c2cf254692aef06a80baebf
|
4
|
+
data.tar.gz: db27910914b47e409ab783633fce0da877c51fa9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43a16fe0a4786385b9b18d3e439f403a3a8b6f02902e23a712ecf599367c21f667361ab3e6196e972b550f048662a60c2607267314ec2f1628cc3c69ef520d72
|
7
|
+
data.tar.gz: aa19a0e86dbf5cff46c1d0c6ef7df4d503f6235a91b03d913be565de2f6b54c5515cc710f69261d75772f4b1ed8fe318fb6ae989a97c361fd7310b899f1bb823
|
data/README.md
CHANGED
@@ -104,6 +104,20 @@ LDAPresolve {
|
|
104
104
|
}
|
105
105
|
```
|
106
106
|
|
107
|
+
uidNumber can be dynamic and include parts of the event using the %{field} syntax.
|
108
|
+
eg assume we have the uidNumber previously stored in the envent's field 'uid'
|
109
|
+
We can then use
|
110
|
+
```sh
|
111
|
+
LDAPresolve {
|
112
|
+
uidNumber => "%{uid}"
|
113
|
+
host => "ldap.somewhere.org"
|
114
|
+
userdn => "ou=users,dc=somewhere,dc=org"
|
115
|
+
groupdn => "ou=groups,dc=somewhere,dc=org"
|
116
|
+
}
|
117
|
+
|
118
|
+
```
|
119
|
+
|
120
|
+
|
107
121
|
#### auxiliary arguments
|
108
122
|
|
109
123
|
if your LDAP server use another port than the (339) default one
|
@@ -36,7 +36,7 @@ require "logstash/namespace"
|
|
36
36
|
# [source, ruby]
|
37
37
|
# filter {
|
38
38
|
# LDAPresolve {
|
39
|
-
# uidNumber => uidNumber to resolve
|
39
|
+
# uidNumber => uidNumber to resolve, you can also use "%{field name}" syntax
|
40
40
|
# host => "my.LDAP.Server"
|
41
41
|
# userdn => "Domain Name to search for users information"
|
42
42
|
# groupdn => "Domain Name to search for group information"
|
@@ -123,24 +123,28 @@ class LogStash::Filters::LDAPresolve < LogStash::Filters::Base
|
|
123
123
|
|
124
124
|
public
|
125
125
|
def filter(event)
|
126
|
+
# extract uid value from event
|
127
|
+
uid2resolve = event.sprintf(@uidNumber)
|
128
|
+
|
129
|
+
#STDERR.puts "UID:#{uid2resolve}"
|
126
130
|
exitstatus = @SUCCESS
|
127
131
|
##--- first check cache for provided uidNumber
|
128
132
|
cached = false
|
129
133
|
if @useCache
|
130
|
-
cached = cached?(
|
134
|
+
cached = cached?(uid2resolve)
|
131
135
|
end
|
132
136
|
|
133
137
|
if cached
|
134
138
|
login, user , group = cached
|
135
139
|
else
|
136
|
-
@logger.info("prompt LDAP for #{
|
140
|
+
@logger.info("prompt LDAP for #{uid2resolve} informations")
|
137
141
|
if use_ssl
|
138
142
|
conn = LDAP::SSLConn.new(host=@host, port=@ldaps_port)
|
139
143
|
else
|
140
144
|
conn = LDAP::Conn.new(host=@host, port=@ldap_port)
|
141
145
|
end
|
142
146
|
|
143
|
-
res = ldapsearch(conn,
|
147
|
+
res = ldapsearch(conn, uid2resolve)
|
144
148
|
user = res['user']
|
145
149
|
group = res['group']
|
146
150
|
login = res['login']
|
@@ -148,7 +152,7 @@ class LogStash::Filters::LDAPresolve < LogStash::Filters::Base
|
|
148
152
|
errmsg = res['err']
|
149
153
|
|
150
154
|
##--- cache infos.
|
151
|
-
cacheUID(
|
155
|
+
cacheUID(uid2resolve, login, user, group)
|
152
156
|
end
|
153
157
|
|
154
158
|
##--- finaly change event to embed login, user and group information
|
@@ -206,7 +210,7 @@ class LogStash::Filters::LDAPresolve < LogStash::Filters::Base
|
|
206
210
|
scope = LDAP::LDAP_SCOPE_SUBTREE
|
207
211
|
##--- search LDAP for the user name
|
208
212
|
begin
|
209
|
-
conn.search(@userdn, scope, "(& (objectclass=posixAccount) (uidNumber=#{
|
213
|
+
conn.search(@userdn, scope, "(& (objectclass=posixAccount) (uidNumber=#{uidNumber}))", @userattrs) { |entry|
|
210
214
|
|
211
215
|
# convert entry object to hash for easier manipulation
|
212
216
|
hashEntry = {}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-filter-LDAPresolve'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.2'
|
4
4
|
s.licenses = ['Apache License (2.0)']
|
5
5
|
s.summary = "This filter adds infodrmation fields from LDAP server based on the provided uid."
|
6
6
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-LDAPresolve
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Deveaud
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logstash-core
|