net-ldap 0.16.0 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/History.rdoc +64 -0
- data/README.rdoc +18 -6
- data/lib/net/ber/core_ext.rb +6 -6
- data/lib/net/ber.rb +2 -2
- 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 +23 -16
- data/lib/net/ldap/dataset.rb +1 -3
- data/lib/net/ldap/dn.rb +14 -22
- data/lib/net/ldap/entry.rb +11 -2
- data/lib/net/ldap/error.rb +2 -26
- data/lib/net/ldap/filter.rb +10 -3
- data/lib/net/ldap/instrumentation.rb +2 -2
- data/lib/net/ldap/password.rb +7 -5
- data/lib/net/ldap/pdu.rb +1 -1
- data/lib/net/ldap/version.rb +1 -1
- data/lib/net/ldap.rb +40 -17
- data/lib/net/snmp.rb +1 -1
- data/lib/net-ldap.rb +1 -1
- metadata +16 -106
- data/.gitignore +0 -9
- data/.rubocop.yml +0 -20
- data/.rubocop_todo.yml +0 -753
- data/.travis.yml +0 -33
- data/CONTRIBUTING.md +0 -54
- data/Gemfile +0 -2
- data/Rakefile +0 -23
- data/net-ldap.gemspec +0 -37
- data/script/changelog +0 -47
- data/script/generate-fixture-ca +0 -48
- data/script/install-openldap +0 -134
- data/script/package +0 -7
- data/script/release +0 -16
- data/test/ber/core_ext/test_array.rb +0 -22
- data/test/ber/core_ext/test_string.rb +0 -25
- data/test/ber/test_ber.rb +0 -153
- data/test/fixtures/ca/ca.info +0 -4
- data/test/fixtures/ca/cacert.pem +0 -24
- data/test/fixtures/ca/cakey.pem +0 -190
- data/test/fixtures/openldap/memberof.ldif +0 -33
- data/test/fixtures/openldap/retcode.ldif +0 -76
- data/test/fixtures/openldap/slapd.conf.ldif +0 -67
- data/test/fixtures/seed.ldif +0 -374
- data/test/integration/test_add.rb +0 -28
- data/test/integration/test_ber.rb +0 -30
- data/test/integration/test_bind.rb +0 -244
- data/test/integration/test_delete.rb +0 -31
- data/test/integration/test_open.rb +0 -88
- data/test/integration/test_password_modify.rb +0 -80
- data/test/integration/test_return_codes.rb +0 -38
- data/test/integration/test_search.rb +0 -77
- data/test/support/vm/openldap/.gitignore +0 -1
- data/test/support/vm/openldap/README.md +0 -64
- data/test/support/vm/openldap/Vagrantfile +0 -34
- data/test/test_auth_adapter.rb +0 -15
- data/test/test_dn.rb +0 -44
- data/test/test_entry.rb +0 -65
- data/test/test_filter.rb +0 -223
- data/test/test_filter_parser.rb +0 -24
- data/test/test_helper.rb +0 -74
- data/test/test_ldap.rb +0 -114
- data/test/test_ldap_connection.rb +0 -491
- data/test/test_ldif.rb +0 -104
- data/test/test_password.rb +0 -10
- data/test/test_rename.rb +0 -77
- data/test/test_search.rb +0 -39
- data/test/test_snmp.rb +0 -119
- data/test/test_ssl_ber.rb +0 -40
- data/test/testdata.ldif +0 -101
- data/testserver/ldapserver.rb +0 -209
- data/testserver/testdata.ldif +0 -101
data/lib/net/ldap.rb
CHANGED
@@ -17,19 +17,19 @@ module Net # :nodoc:
|
|
17
17
|
end
|
18
18
|
require 'socket'
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
20
|
+
require_relative 'ber'
|
21
|
+
require_relative 'ldap/pdu'
|
22
|
+
require_relative 'ldap/filter'
|
23
|
+
require_relative 'ldap/dataset'
|
24
|
+
require_relative 'ldap/password'
|
25
|
+
require_relative 'ldap/entry'
|
26
|
+
require_relative 'ldap/instrumentation'
|
27
|
+
require_relative 'ldap/connection'
|
28
|
+
require_relative 'ldap/version'
|
29
|
+
require_relative 'ldap/error'
|
30
|
+
require_relative 'ldap/auth_adapter'
|
31
|
+
require_relative 'ldap/auth_adapter/simple'
|
32
|
+
require_relative 'ldap/auth_adapter/sasl'
|
33
33
|
|
34
34
|
Net::LDAP::AuthAdapter.register([:simple, :anon, :anonymous], Net::LDAP::AuthAdapter::Simple)
|
35
35
|
Net::LDAP::AuthAdapter.register(:sasl, Net::LDAP::AuthAdapter::Sasl)
|
@@ -412,7 +412,7 @@ class Net::LDAP
|
|
412
412
|
ResultCodeStrongerAuthRequired => "Stronger Auth Needed",
|
413
413
|
ResultCodeReferral => "Referral",
|
414
414
|
ResultCodeAdminLimitExceeded => "Admin Limit Exceeded",
|
415
|
-
ResultCodeUnavailableCriticalExtension => "Unavailable
|
415
|
+
ResultCodeUnavailableCriticalExtension => "Unavailable critical extension",
|
416
416
|
ResultCodeConfidentialityRequired => "Confidentiality Required",
|
417
417
|
ResultCodeSaslBindInProgress => "saslBindInProgress",
|
418
418
|
ResultCodeNoSuchAttribute => "No Such Attribute",
|
@@ -712,7 +712,7 @@ class Net::LDAP
|
|
712
712
|
begin
|
713
713
|
@open_connection = new_connection
|
714
714
|
payload[:connection] = @open_connection
|
715
|
-
payload[:bind] = @open_connection.bind(@auth)
|
715
|
+
payload[:bind] = @result = @open_connection.bind(@auth)
|
716
716
|
yield self
|
717
717
|
ensure
|
718
718
|
@open_connection.close if @open_connection
|
@@ -1182,14 +1182,22 @@ class Net::LDAP
|
|
1182
1182
|
# entries. This method sends an extra control code to tell the LDAP server
|
1183
1183
|
# to do a tree delete. ('1.2.840.113556.1.4.805')
|
1184
1184
|
#
|
1185
|
+
# If the LDAP server does not support the DELETE_TREE control code, subordinate
|
1186
|
+
# entries are deleted recursively instead.
|
1187
|
+
#
|
1185
1188
|
# Returns True or False to indicate whether the delete succeeded. Extended
|
1186
1189
|
# status information is available by calling #get_operation_result.
|
1187
1190
|
#
|
1188
1191
|
# dn = "mail=deleteme@example.com, ou=people, dc=example, dc=com"
|
1189
1192
|
# ldap.delete_tree :dn => dn
|
1190
1193
|
def delete_tree(args)
|
1191
|
-
|
1194
|
+
if search_root_dse[:supportedcontrol].include? Net::LDAP::LDAPControls::DELETE_TREE
|
1195
|
+
delete(args.merge(:control_codes => [[Net::LDAP::LDAPControls::DELETE_TREE, true]]))
|
1196
|
+
else
|
1197
|
+
recursive_delete(args)
|
1198
|
+
end
|
1192
1199
|
end
|
1200
|
+
|
1193
1201
|
# This method is experimental and subject to change. Return the rootDSE
|
1194
1202
|
# record from the LDAP server as a Net::LDAP::Entry, or an empty Entry if
|
1195
1203
|
# the server doesn't return the record.
|
@@ -1320,7 +1328,7 @@ class Net::LDAP
|
|
1320
1328
|
# Force connect to see if there's a connection error
|
1321
1329
|
connection.socket
|
1322
1330
|
connection
|
1323
|
-
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT
|
1331
|
+
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => e
|
1324
1332
|
@result = {
|
1325
1333
|
:resultCode => 52,
|
1326
1334
|
:errorMessage => ResultStrings[ResultCodeUnavailable],
|
@@ -1340,4 +1348,19 @@ class Net::LDAP
|
|
1340
1348
|
end
|
1341
1349
|
end
|
1342
1350
|
|
1351
|
+
# Recursively delete a dn and it's subordinate children.
|
1352
|
+
# This is useful when a server does not support the DELETE_TREE control code.
|
1353
|
+
def recursive_delete(args)
|
1354
|
+
raise EmptyDNError unless args.is_a?(Hash) && args.key?(:dn)
|
1355
|
+
# Delete Children
|
1356
|
+
search(base: args[:dn], scope: Net::LDAP::SearchScope_SingleLevel) do |entry|
|
1357
|
+
recursive_delete(dn: entry.dn)
|
1358
|
+
end
|
1359
|
+
# Delete Self
|
1360
|
+
unless delete(dn: args[:dn])
|
1361
|
+
raise Net::LDAP::Error, get_operation_result[:error_message].to_s
|
1362
|
+
end
|
1363
|
+
true
|
1364
|
+
end
|
1365
|
+
|
1343
1366
|
end # class LDAP
|
data/lib/net/snmp.rb
CHANGED
data/lib/net-ldap.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
2
|
-
|
2
|
+
require_relative 'net/ldap'
|
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.
|
4
|
+
version: 0.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francis Cianfrocca
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2023-04-04 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: flexmock
|
@@ -35,56 +35,56 @@ 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:
|
52
|
+
version: '1.48'
|
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:
|
59
|
+
version: '1.48'
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: test-unit
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
|
-
- - "
|
64
|
+
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
66
|
+
version: '3.3'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
69
|
version_requirements: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
|
-
- - "
|
71
|
+
- - "~>"
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version: '
|
73
|
+
version: '3.3'
|
74
74
|
- !ruby/object:Gem::Dependency
|
75
75
|
name: byebug
|
76
76
|
requirement: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
|
-
- - "
|
78
|
+
- - "~>"
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
80
|
+
version: 9.0.6
|
81
81
|
type: :development
|
82
82
|
prerelease: false
|
83
83
|
version_requirements: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- - "
|
85
|
+
- - "~>"
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
87
|
+
version: 9.0.6
|
88
88
|
description: |-
|
89
89
|
Net::LDAP for Ruby (also called net-ldap) implements client access for the
|
90
90
|
Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for
|
@@ -112,18 +112,11 @@ extra_rdoc_files:
|
|
112
112
|
- License.rdoc
|
113
113
|
- README.rdoc
|
114
114
|
files:
|
115
|
-
- ".gitignore"
|
116
|
-
- ".rubocop.yml"
|
117
|
-
- ".rubocop_todo.yml"
|
118
|
-
- ".travis.yml"
|
119
|
-
- CONTRIBUTING.md
|
120
115
|
- Contributors.rdoc
|
121
|
-
- Gemfile
|
122
116
|
- Hacking.rdoc
|
123
117
|
- History.rdoc
|
124
118
|
- License.rdoc
|
125
119
|
- README.rdoc
|
126
|
-
- Rakefile
|
127
120
|
- lib/net-ldap.rb
|
128
121
|
- lib/net/ber.rb
|
129
122
|
- lib/net/ber/ber_parser.rb
|
@@ -149,50 +142,6 @@ files:
|
|
149
142
|
- lib/net/ldap/pdu.rb
|
150
143
|
- lib/net/ldap/version.rb
|
151
144
|
- lib/net/snmp.rb
|
152
|
-
- net-ldap.gemspec
|
153
|
-
- script/changelog
|
154
|
-
- script/generate-fixture-ca
|
155
|
-
- script/install-openldap
|
156
|
-
- script/package
|
157
|
-
- script/release
|
158
|
-
- test/ber/core_ext/test_array.rb
|
159
|
-
- test/ber/core_ext/test_string.rb
|
160
|
-
- test/ber/test_ber.rb
|
161
|
-
- test/fixtures/ca/ca.info
|
162
|
-
- test/fixtures/ca/cacert.pem
|
163
|
-
- test/fixtures/ca/cakey.pem
|
164
|
-
- test/fixtures/openldap/memberof.ldif
|
165
|
-
- test/fixtures/openldap/retcode.ldif
|
166
|
-
- test/fixtures/openldap/slapd.conf.ldif
|
167
|
-
- test/fixtures/seed.ldif
|
168
|
-
- test/integration/test_add.rb
|
169
|
-
- test/integration/test_ber.rb
|
170
|
-
- test/integration/test_bind.rb
|
171
|
-
- test/integration/test_delete.rb
|
172
|
-
- test/integration/test_open.rb
|
173
|
-
- test/integration/test_password_modify.rb
|
174
|
-
- test/integration/test_return_codes.rb
|
175
|
-
- test/integration/test_search.rb
|
176
|
-
- test/support/vm/openldap/.gitignore
|
177
|
-
- test/support/vm/openldap/README.md
|
178
|
-
- test/support/vm/openldap/Vagrantfile
|
179
|
-
- test/test_auth_adapter.rb
|
180
|
-
- test/test_dn.rb
|
181
|
-
- test/test_entry.rb
|
182
|
-
- test/test_filter.rb
|
183
|
-
- test/test_filter_parser.rb
|
184
|
-
- test/test_helper.rb
|
185
|
-
- test/test_ldap.rb
|
186
|
-
- test/test_ldap_connection.rb
|
187
|
-
- test/test_ldif.rb
|
188
|
-
- test/test_password.rb
|
189
|
-
- test/test_rename.rb
|
190
|
-
- test/test_search.rb
|
191
|
-
- test/test_snmp.rb
|
192
|
-
- test/test_ssl_ber.rb
|
193
|
-
- test/testdata.ldif
|
194
|
-
- testserver/ldapserver.rb
|
195
|
-
- testserver/testdata.ldif
|
196
145
|
homepage: http://github.com/ruby-ldap/ruby-net-ldap
|
197
146
|
licenses:
|
198
147
|
- MIT
|
@@ -214,49 +163,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
163
|
- !ruby/object:Gem::Version
|
215
164
|
version: '0'
|
216
165
|
requirements: []
|
217
|
-
|
218
|
-
rubygems_version: 2.5.2
|
166
|
+
rubygems_version: 3.4.7
|
219
167
|
signing_key:
|
220
168
|
specification_version: 4
|
221
169
|
summary: Net::LDAP for Ruby (also called net-ldap) implements client access for the
|
222
170
|
Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for accessing
|
223
171
|
distributed directory services
|
224
|
-
test_files:
|
225
|
-
- test/ber/core_ext/test_array.rb
|
226
|
-
- test/ber/core_ext/test_string.rb
|
227
|
-
- test/ber/test_ber.rb
|
228
|
-
- test/fixtures/ca/ca.info
|
229
|
-
- test/fixtures/ca/cacert.pem
|
230
|
-
- test/fixtures/ca/cakey.pem
|
231
|
-
- test/fixtures/openldap/memberof.ldif
|
232
|
-
- test/fixtures/openldap/retcode.ldif
|
233
|
-
- test/fixtures/openldap/slapd.conf.ldif
|
234
|
-
- test/fixtures/seed.ldif
|
235
|
-
- test/integration/test_add.rb
|
236
|
-
- test/integration/test_ber.rb
|
237
|
-
- test/integration/test_bind.rb
|
238
|
-
- test/integration/test_delete.rb
|
239
|
-
- test/integration/test_open.rb
|
240
|
-
- test/integration/test_password_modify.rb
|
241
|
-
- test/integration/test_return_codes.rb
|
242
|
-
- test/integration/test_search.rb
|
243
|
-
- test/support/vm/openldap/.gitignore
|
244
|
-
- test/support/vm/openldap/README.md
|
245
|
-
- test/support/vm/openldap/Vagrantfile
|
246
|
-
- test/test_auth_adapter.rb
|
247
|
-
- test/test_dn.rb
|
248
|
-
- test/test_entry.rb
|
249
|
-
- test/test_filter.rb
|
250
|
-
- test/test_filter_parser.rb
|
251
|
-
- test/test_helper.rb
|
252
|
-
- test/test_ldap.rb
|
253
|
-
- test/test_ldap_connection.rb
|
254
|
-
- test/test_ldif.rb
|
255
|
-
- test/test_password.rb
|
256
|
-
- test/test_rename.rb
|
257
|
-
- test/test_search.rb
|
258
|
-
- test/test_snmp.rb
|
259
|
-
- test/test_ssl_ber.rb
|
260
|
-
- test/testdata.ldif
|
261
|
-
- testserver/ldapserver.rb
|
262
|
-
- testserver/testdata.ldif
|
172
|
+
test_files: []
|
data/.gitignore
DELETED
data/.rubocop.yml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
inherit_from: .rubocop_todo.yml
|
2
|
-
|
3
|
-
AllCops:
|
4
|
-
Exclude:
|
5
|
-
- 'pkg/**/*'
|
6
|
-
|
7
|
-
Style/ExtraSpacing:
|
8
|
-
Enabled: false
|
9
|
-
|
10
|
-
Lint/AssignmentInCondition:
|
11
|
-
Enabled: false
|
12
|
-
|
13
|
-
Style/ParallelAssignment:
|
14
|
-
Enabled: false
|
15
|
-
|
16
|
-
Style/TrailingCommaInLiteral:
|
17
|
-
EnforcedStyleForMultiline: comma
|
18
|
-
|
19
|
-
Style/TrailingCommaInArguments:
|
20
|
-
EnforcedStyleForMultiline: comma
|