net-ldap 0.16.2 → 0.16.3
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/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +216 -246
- data/.travis.yml +4 -2
- data/CONTRIBUTING.md +1 -1
- data/README.rdoc +2 -2
- data/Rakefile +1 -1
- data/lib/net-ldap.rb +1 -1
- data/lib/net/ber.rb +2 -2
- data/lib/net/ber/core_ext.rb +6 -6
- data/lib/net/ldap.rb +13 -13
- data/lib/net/ldap/auth_adapter/gss_spnego.rb +2 -2
- data/lib/net/ldap/auth_adapter/sasl.rb +1 -1
- data/lib/net/ldap/auth_adapter/simple.rb +1 -1
- data/lib/net/ldap/connection.rb +4 -4
- data/lib/net/ldap/dataset.rb +2 -2
- data/lib/net/ldap/dn.rb +10 -10
- data/lib/net/ldap/entry.rb +1 -1
- data/lib/net/ldap/error.rb +1 -0
- data/lib/net/ldap/filter.rb +3 -3
- data/lib/net/ldap/instrumentation.rb +2 -2
- data/lib/net/ldap/password.rb +3 -5
- data/lib/net/ldap/pdu.rb +1 -1
- data/lib/net/ldap/version.rb +1 -1
- data/lib/net/snmp.rb +1 -1
- data/net-ldap.gemspec +4 -4
- data/test/ber/test_ber.rb +1 -1
- data/test/integration/test_ber.rb +1 -1
- data/test/integration/test_bind.rb +1 -2
- data/test/integration/test_password_modify.rb +10 -10
- data/test/test_dn.rb +2 -3
- data/test/test_entry.rb +3 -2
- data/test/test_filter_parser.rb +5 -0
- data/test/test_helper.rb +1 -1
- data/test/test_ldap.rb +5 -5
- data/test/test_ldap_connection.rb +46 -32
- data/test/test_ldif.rb +12 -12
- data/test/test_password.rb +2 -2
- data/test/test_snmp.rb +4 -5
- data/test/test_ssl_ber.rb +7 -3
- data/testserver/ldapserver.rb +13 -22
- metadata +10 -10
data/test/test_ssl_ber.rb
CHANGED
@@ -5,7 +5,7 @@ class TestSSLBER < Test::Unit::TestCase
|
|
5
5
|
# Transmits str to @to and reads it back from @from.
|
6
6
|
#
|
7
7
|
def transmit(str)
|
8
|
-
Timeout
|
8
|
+
Timeout.timeout(1) do
|
9
9
|
@to.write(str)
|
10
10
|
@to.close
|
11
11
|
|
@@ -22,18 +22,22 @@ class TestSSLBER < Test::Unit::TestCase
|
|
22
22
|
#
|
23
23
|
# TODO: Replace test with real socket
|
24
24
|
# https://github.com/ruby-ldap/ruby-net-ldap/pull/121#discussion_r18746386
|
25
|
-
flexmock(OpenSSL::SSL::SSLSocket)
|
26
|
-
new_instances.should_receive(:connect => nil)
|
25
|
+
flexmock(OpenSSL::SSL::SSLSocket)
|
26
|
+
.new_instances.should_receive(:connect => nil)
|
27
27
|
|
28
28
|
@to = Net::LDAP::Connection.wrap_with_ssl(@to)
|
29
29
|
@from = Net::LDAP::Connection.wrap_with_ssl(@from)
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_transmit_strings
|
33
|
+
omit_if RUBY_PLATFORM == "java", "JRuby throws an error without a real socket"
|
34
|
+
|
33
35
|
assert_equal "foo", transmit("foo")
|
34
36
|
end
|
35
37
|
|
36
38
|
def test_transmit_ber_encoded_numbers
|
39
|
+
omit_if RUBY_PLATFORM == "java", "JRuby throws an error without a real socket"
|
40
|
+
|
37
41
|
@to.write 1234.to_ber
|
38
42
|
assert_equal 1234, @from.read_ber
|
39
43
|
end
|
data/testserver/ldapserver.rb
CHANGED
@@ -15,7 +15,6 @@
|
|
15
15
|
#------------------------------------------------
|
16
16
|
|
17
17
|
module LdapServer
|
18
|
-
|
19
18
|
LdapServerAsnSyntax = {
|
20
19
|
:application => {
|
21
20
|
:constructed => {
|
@@ -46,7 +45,7 @@ module LdapServer
|
|
46
45
|
@data ||= ""; @data << data
|
47
46
|
while pdu = @data.read_ber!(LdapServerAsnSyntax)
|
48
47
|
begin
|
49
|
-
|
48
|
+
handle_ldap_pdu pdu
|
50
49
|
rescue
|
51
50
|
$logger.error "closing connection due to error #{$!}"
|
52
51
|
close_connection
|
@@ -87,9 +86,7 @@ module LdapServer
|
|
87
86
|
end
|
88
87
|
end
|
89
88
|
|
90
|
-
|
91
|
-
|
92
|
-
#--
|
89
|
+
# --
|
93
90
|
# Search Response ::=
|
94
91
|
# CHOICE {
|
95
92
|
# entry [APPLICATION 4] SEQUENCE {
|
@@ -119,9 +116,9 @@ module LdapServer
|
|
119
116
|
# pdu[1][7] is the list of requested attributes.
|
120
117
|
# If it's an empty array, that means that *all* attributes were requested.
|
121
118
|
requested_attrs = if pdu[1][7].length > 0
|
122
|
-
|
123
|
-
|
124
|
-
|
119
|
+
pdu[1][7].map(&:downcase)
|
120
|
+
else
|
121
|
+
:all
|
125
122
|
end
|
126
123
|
|
127
124
|
filters = pdu[1][6]
|
@@ -131,13 +128,13 @@ module LdapServer
|
|
131
128
|
end
|
132
129
|
|
133
130
|
# TODO, what if this returns nil?
|
134
|
-
filter = Net::LDAP::Filter.parse_ldap_filter(
|
131
|
+
filter = Net::LDAP::Filter.parse_ldap_filter(filters)
|
135
132
|
|
136
133
|
$ldif.each do |dn, entry|
|
137
|
-
if filter.match(
|
134
|
+
if filter.match(entry)
|
138
135
|
attrs = []
|
139
136
|
entry.each do |k, v|
|
140
|
-
if requested_attrs == :all
|
137
|
+
if requested_attrs == :all || requested_attrs.include?(k.downcase)
|
141
138
|
attrvals = v.map(&:to_ber).to_ber_set
|
142
139
|
attrs << [k.to_ber, attrvals].to_ber_sequence
|
143
140
|
end
|
@@ -149,32 +146,27 @@ module LdapServer
|
|
149
146
|
end
|
150
147
|
end
|
151
148
|
|
152
|
-
|
153
149
|
send_ldap_response 5, pdu[0].to_i, 0, "", "Was that what you wanted?"
|
154
150
|
end
|
155
151
|
|
156
|
-
|
157
|
-
|
158
152
|
def send_ldap_response pkt_tag, msgid, code, dn, text
|
159
|
-
send_data(
|
153
|
+
send_data([msgid.to_ber, [code.to_ber, dn.to_ber, text.to_ber].to_ber_appsequence(pkt_tag)].to_ber)
|
160
154
|
end
|
161
|
-
|
162
155
|
end
|
163
156
|
|
164
|
-
|
165
157
|
#------------------------------------------------
|
166
158
|
|
167
159
|
# Rather bogus, a global method, which reads a HARDCODED filename
|
168
160
|
# parses out LDIF data. It will be used to serve LDAP queries out of this server.
|
169
161
|
#
|
170
162
|
def load_test_data
|
171
|
-
ary = File.readlines(
|
163
|
+
ary = File.readlines("./testdata.ldif")
|
172
164
|
hash = {}
|
173
|
-
while line = ary.shift
|
165
|
+
while (line = ary.shift) && line.chomp!
|
174
166
|
if line =~ /^dn:[\s]*/i
|
175
167
|
dn = $'
|
176
168
|
hash[dn] = {}
|
177
|
-
while attr = ary.shift
|
169
|
+
while (attr = ary.shift) && attr.chomp! && attr =~ /^([\w]+)[\s]*:[\s]*/
|
178
170
|
hash[dn][$1.downcase] ||= []
|
179
171
|
hash[dn][$1.downcase] << $'
|
180
172
|
end
|
@@ -183,7 +175,6 @@ def load_test_data
|
|
183
175
|
hash
|
184
176
|
end
|
185
177
|
|
186
|
-
|
187
178
|
#------------------------------------------------
|
188
179
|
|
189
180
|
if __FILE__ == $0
|
@@ -204,6 +195,6 @@ if __FILE__ == $0
|
|
204
195
|
EventMachine.run do
|
205
196
|
$logger.info "starting LDAP server on 127.0.0.1 port 3890"
|
206
197
|
EventMachine.start_server "127.0.0.1", 3890, LdapServer
|
207
|
-
EventMachine.add_periodic_timer 60, proc {$logger.info "heartbeat"}
|
198
|
+
EventMachine.add_periodic_timer 60, proc { $logger.info "heartbeat" }
|
208
199
|
end
|
209
200
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-ldap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.16.
|
4
|
+
version: 0.16.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francis Cianfrocca
|
@@ -10,10 +10,10 @@ authors:
|
|
10
10
|
- Kaspar Schiess
|
11
11
|
- Austin Ziegler
|
12
12
|
- Michael Schaarschmidt
|
13
|
-
autorequire:
|
13
|
+
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2020-08-18 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: flexmock
|
@@ -35,28 +35,28 @@ dependencies:
|
|
35
35
|
requirements:
|
36
36
|
- - "~>"
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
38
|
+
version: 12.3.3
|
39
39
|
type: :development
|
40
40
|
prerelease: false
|
41
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
42
|
requirements:
|
43
43
|
- - "~>"
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 12.3.3
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rubocop
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
requirements:
|
50
50
|
- - "~>"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: 0.
|
52
|
+
version: 0.49.0
|
53
53
|
type: :development
|
54
54
|
prerelease: false
|
55
55
|
version_requirements: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 0.
|
59
|
+
version: 0.49.0
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: test-unit
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,7 +190,7 @@ homepage: http://github.com/ruby-ldap/ruby-net-ldap
|
|
190
190
|
licenses:
|
191
191
|
- MIT
|
192
192
|
metadata: {}
|
193
|
-
post_install_message:
|
193
|
+
post_install_message:
|
194
194
|
rdoc_options:
|
195
195
|
- "--main"
|
196
196
|
- README.rdoc
|
@@ -207,8 +207,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
209
|
requirements: []
|
210
|
-
rubygems_version: 3.
|
211
|
-
signing_key:
|
210
|
+
rubygems_version: 3.1.2
|
211
|
+
signing_key:
|
212
212
|
specification_version: 4
|
213
213
|
summary: Net::LDAP for Ruby (also called net-ldap) implements client access for the
|
214
214
|
Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for accessing
|