net-ldap 0.16.2 → 0.19.0
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/History.rdoc +59 -0
- data/README.rdoc +10 -3
- 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 +22 -14
- data/lib/net/ldap/dataset.rb +1 -3
- data/lib/net/ldap/dn.rb +19 -27
- data/lib/net/ldap/entry.rb +11 -2
- data/lib/net/ldap/error.rb +2 -26
- data/lib/net/ldap/filter.rb +3 -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 +41 -16
- data/lib/net/snmp.rb +1 -1
- data/lib/net-ldap.rb +1 -1
- metadata +16 -92
- data/.gitignore +0 -10
- data/.rubocop.yml +0 -20
- data/.rubocop_todo.yml +0 -753
- data/.travis.yml +0 -55
- 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/ldap-docker +0 -12
- 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/docker-ca.pem +0 -18
- data/test/fixtures/ldif/06-retcode.ldif +0 -75
- data/test/fixtures/ldif/50-seed.ldif +0 -374
- data/test/integration/test_add.rb +0 -26
- data/test/integration/test_ber.rb +0 -30
- data/test/integration/test_bind.rb +0 -222
- data/test/integration/test_delete.rb +0 -29
- data/test/integration/test_open.rb +0 -87
- data/test/integration/test_password_modify.rb +0 -93
- data/test/integration/test_return_codes.rb +0 -46
- data/test/integration/test_search.rb +0 -77
- data/test/support/vm/openldap/.gitignore +0 -1
- 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 -73
- 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",
|
@@ -480,6 +480,8 @@ class Net::LDAP
|
|
480
480
|
# server says it supports them. This is a fix for MS Active Directory
|
481
481
|
# * :instrumentation_service => An object responsible for instrumenting
|
482
482
|
# operations, compatible with ActiveSupport::Notifications' public API.
|
483
|
+
# * :connect_timeout => The TCP socket timeout (in seconds) to use when
|
484
|
+
# connecting to the LDAP server (default 5 seconds).
|
483
485
|
# * :encryption => specifies the encryption to be used in communicating
|
484
486
|
# with the LDAP server. The value must be a Hash containing additional
|
485
487
|
# parameters, which consists of two keys:
|
@@ -1182,14 +1184,22 @@ class Net::LDAP
|
|
1182
1184
|
# entries. This method sends an extra control code to tell the LDAP server
|
1183
1185
|
# to do a tree delete. ('1.2.840.113556.1.4.805')
|
1184
1186
|
#
|
1187
|
+
# If the LDAP server does not support the DELETE_TREE control code, subordinate
|
1188
|
+
# entries are deleted recursively instead.
|
1189
|
+
#
|
1185
1190
|
# Returns True or False to indicate whether the delete succeeded. Extended
|
1186
1191
|
# status information is available by calling #get_operation_result.
|
1187
1192
|
#
|
1188
1193
|
# dn = "mail=deleteme@example.com, ou=people, dc=example, dc=com"
|
1189
1194
|
# ldap.delete_tree :dn => dn
|
1190
1195
|
def delete_tree(args)
|
1191
|
-
|
1196
|
+
if search_root_dse[:supportedcontrol].include? Net::LDAP::LDAPControls::DELETE_TREE
|
1197
|
+
delete(args.merge(:control_codes => [[Net::LDAP::LDAPControls::DELETE_TREE, true]]))
|
1198
|
+
else
|
1199
|
+
recursive_delete(args)
|
1200
|
+
end
|
1192
1201
|
end
|
1202
|
+
|
1193
1203
|
# This method is experimental and subject to change. Return the rootDSE
|
1194
1204
|
# record from the LDAP server as a Net::LDAP::Entry, or an empty Entry if
|
1195
1205
|
# the server doesn't return the record.
|
@@ -1320,7 +1330,7 @@ class Net::LDAP
|
|
1320
1330
|
# Force connect to see if there's a connection error
|
1321
1331
|
connection.socket
|
1322
1332
|
connection
|
1323
|
-
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT
|
1333
|
+
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => e
|
1324
1334
|
@result = {
|
1325
1335
|
:resultCode => 52,
|
1326
1336
|
:errorMessage => ResultStrings[ResultCodeUnavailable],
|
@@ -1340,4 +1350,19 @@ class Net::LDAP
|
|
1340
1350
|
end
|
1341
1351
|
end
|
1342
1352
|
|
1353
|
+
# Recursively delete a dn and it's subordinate children.
|
1354
|
+
# This is useful when a server does not support the DELETE_TREE control code.
|
1355
|
+
def recursive_delete(args)
|
1356
|
+
raise EmptyDNError unless args.is_a?(Hash) && args.key?(:dn)
|
1357
|
+
# Delete Children
|
1358
|
+
search(base: args[:dn], scope: Net::LDAP::SearchScope_SingleLevel) do |entry|
|
1359
|
+
recursive_delete(dn: entry.dn)
|
1360
|
+
end
|
1361
|
+
# Delete Self
|
1362
|
+
unless delete(dn: args[:dn])
|
1363
|
+
raise Net::LDAP::Error, get_operation_result[:error_message].to_s
|
1364
|
+
end
|
1365
|
+
true
|
1366
|
+
end
|
1367
|
+
|
1343
1368
|
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.19.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: 2024-01-03 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,43 +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/ldap-docker
|
155
|
-
- script/package
|
156
|
-
- script/release
|
157
|
-
- test/ber/core_ext/test_array.rb
|
158
|
-
- test/ber/core_ext/test_string.rb
|
159
|
-
- test/ber/test_ber.rb
|
160
|
-
- test/fixtures/ca/docker-ca.pem
|
161
|
-
- test/fixtures/ldif/06-retcode.ldif
|
162
|
-
- test/fixtures/ldif/50-seed.ldif
|
163
|
-
- test/integration/test_add.rb
|
164
|
-
- test/integration/test_ber.rb
|
165
|
-
- test/integration/test_bind.rb
|
166
|
-
- test/integration/test_delete.rb
|
167
|
-
- test/integration/test_open.rb
|
168
|
-
- test/integration/test_password_modify.rb
|
169
|
-
- test/integration/test_return_codes.rb
|
170
|
-
- test/integration/test_search.rb
|
171
|
-
- test/support/vm/openldap/.gitignore
|
172
|
-
- test/test_auth_adapter.rb
|
173
|
-
- test/test_dn.rb
|
174
|
-
- test/test_entry.rb
|
175
|
-
- test/test_filter.rb
|
176
|
-
- test/test_filter_parser.rb
|
177
|
-
- test/test_helper.rb
|
178
|
-
- test/test_ldap.rb
|
179
|
-
- test/test_ldap_connection.rb
|
180
|
-
- test/test_ldif.rb
|
181
|
-
- test/test_password.rb
|
182
|
-
- test/test_rename.rb
|
183
|
-
- test/test_search.rb
|
184
|
-
- test/test_snmp.rb
|
185
|
-
- test/test_ssl_ber.rb
|
186
|
-
- test/testdata.ldif
|
187
|
-
- testserver/ldapserver.rb
|
188
|
-
- testserver/testdata.ldif
|
189
145
|
homepage: http://github.com/ruby-ldap/ruby-net-ldap
|
190
146
|
licenses:
|
191
147
|
- MIT
|
@@ -207,42 +163,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
163
|
- !ruby/object:Gem::Version
|
208
164
|
version: '0'
|
209
165
|
requirements: []
|
210
|
-
rubygems_version: 3.
|
166
|
+
rubygems_version: 3.4.14
|
211
167
|
signing_key:
|
212
168
|
specification_version: 4
|
213
169
|
summary: Net::LDAP for Ruby (also called net-ldap) implements client access for the
|
214
170
|
Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for accessing
|
215
171
|
distributed directory services
|
216
|
-
test_files:
|
217
|
-
- test/ber/core_ext/test_array.rb
|
218
|
-
- test/ber/core_ext/test_string.rb
|
219
|
-
- test/ber/test_ber.rb
|
220
|
-
- test/fixtures/ca/docker-ca.pem
|
221
|
-
- test/fixtures/ldif/06-retcode.ldif
|
222
|
-
- test/fixtures/ldif/50-seed.ldif
|
223
|
-
- test/integration/test_add.rb
|
224
|
-
- test/integration/test_ber.rb
|
225
|
-
- test/integration/test_bind.rb
|
226
|
-
- test/integration/test_delete.rb
|
227
|
-
- test/integration/test_open.rb
|
228
|
-
- test/integration/test_password_modify.rb
|
229
|
-
- test/integration/test_return_codes.rb
|
230
|
-
- test/integration/test_search.rb
|
231
|
-
- test/support/vm/openldap/.gitignore
|
232
|
-
- test/test_auth_adapter.rb
|
233
|
-
- test/test_dn.rb
|
234
|
-
- test/test_entry.rb
|
235
|
-
- test/test_filter.rb
|
236
|
-
- test/test_filter_parser.rb
|
237
|
-
- test/test_helper.rb
|
238
|
-
- test/test_ldap.rb
|
239
|
-
- test/test_ldap_connection.rb
|
240
|
-
- test/test_ldif.rb
|
241
|
-
- test/test_password.rb
|
242
|
-
- test/test_rename.rb
|
243
|
-
- test/test_search.rb
|
244
|
-
- test/test_snmp.rb
|
245
|
-
- test/test_ssl_ber.rb
|
246
|
-
- test/testdata.ldif
|
247
|
-
- testserver/ldapserver.rb
|
248
|
-
- 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
|