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.
Files changed (73) hide show
  1. checksums.yaml +5 -5
  2. data/History.rdoc +64 -0
  3. data/README.rdoc +18 -6
  4. data/lib/net/ber/core_ext.rb +6 -6
  5. data/lib/net/ber.rb +2 -2
  6. data/lib/net/ldap/auth_adapter/gss_spnego.rb +2 -2
  7. data/lib/net/ldap/auth_adapter/sasl.rb +1 -1
  8. data/lib/net/ldap/auth_adapter/simple.rb +1 -1
  9. data/lib/net/ldap/connection.rb +23 -16
  10. data/lib/net/ldap/dataset.rb +1 -3
  11. data/lib/net/ldap/dn.rb +14 -22
  12. data/lib/net/ldap/entry.rb +11 -2
  13. data/lib/net/ldap/error.rb +2 -26
  14. data/lib/net/ldap/filter.rb +10 -3
  15. data/lib/net/ldap/instrumentation.rb +2 -2
  16. data/lib/net/ldap/password.rb +7 -5
  17. data/lib/net/ldap/pdu.rb +1 -1
  18. data/lib/net/ldap/version.rb +1 -1
  19. data/lib/net/ldap.rb +40 -17
  20. data/lib/net/snmp.rb +1 -1
  21. data/lib/net-ldap.rb +1 -1
  22. metadata +16 -106
  23. data/.gitignore +0 -9
  24. data/.rubocop.yml +0 -20
  25. data/.rubocop_todo.yml +0 -753
  26. data/.travis.yml +0 -33
  27. data/CONTRIBUTING.md +0 -54
  28. data/Gemfile +0 -2
  29. data/Rakefile +0 -23
  30. data/net-ldap.gemspec +0 -37
  31. data/script/changelog +0 -47
  32. data/script/generate-fixture-ca +0 -48
  33. data/script/install-openldap +0 -134
  34. data/script/package +0 -7
  35. data/script/release +0 -16
  36. data/test/ber/core_ext/test_array.rb +0 -22
  37. data/test/ber/core_ext/test_string.rb +0 -25
  38. data/test/ber/test_ber.rb +0 -153
  39. data/test/fixtures/ca/ca.info +0 -4
  40. data/test/fixtures/ca/cacert.pem +0 -24
  41. data/test/fixtures/ca/cakey.pem +0 -190
  42. data/test/fixtures/openldap/memberof.ldif +0 -33
  43. data/test/fixtures/openldap/retcode.ldif +0 -76
  44. data/test/fixtures/openldap/slapd.conf.ldif +0 -67
  45. data/test/fixtures/seed.ldif +0 -374
  46. data/test/integration/test_add.rb +0 -28
  47. data/test/integration/test_ber.rb +0 -30
  48. data/test/integration/test_bind.rb +0 -244
  49. data/test/integration/test_delete.rb +0 -31
  50. data/test/integration/test_open.rb +0 -88
  51. data/test/integration/test_password_modify.rb +0 -80
  52. data/test/integration/test_return_codes.rb +0 -38
  53. data/test/integration/test_search.rb +0 -77
  54. data/test/support/vm/openldap/.gitignore +0 -1
  55. data/test/support/vm/openldap/README.md +0 -64
  56. data/test/support/vm/openldap/Vagrantfile +0 -34
  57. data/test/test_auth_adapter.rb +0 -15
  58. data/test/test_dn.rb +0 -44
  59. data/test/test_entry.rb +0 -65
  60. data/test/test_filter.rb +0 -223
  61. data/test/test_filter_parser.rb +0 -24
  62. data/test/test_helper.rb +0 -74
  63. data/test/test_ldap.rb +0 -114
  64. data/test/test_ldap_connection.rb +0 -491
  65. data/test/test_ldif.rb +0 -104
  66. data/test/test_password.rb +0 -10
  67. data/test/test_rename.rb +0 -77
  68. data/test/test_search.rb +0 -39
  69. data/test/test_snmp.rb +0 -119
  70. data/test/test_ssl_ber.rb +0 -40
  71. data/test/testdata.ldif +0 -101
  72. data/testserver/ldapserver.rb +0 -209
  73. 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
- require 'net/ber'
21
- require 'net/ldap/pdu'
22
- require 'net/ldap/filter'
23
- require 'net/ldap/dataset'
24
- require 'net/ldap/password'
25
- require 'net/ldap/entry'
26
- require 'net/ldap/instrumentation'
27
- require 'net/ldap/connection'
28
- require 'net/ldap/version'
29
- require 'net/ldap/error'
30
- require 'net/ldap/auth_adapter'
31
- require 'net/ldap/auth_adapter/simple'
32
- require 'net/ldap/auth_adapter/sasl'
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 crtical extension",
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
- delete(args.merge(:control_codes => [[Net::LDAP::LDAPControls::DELETE_TREE, true]]))
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, Net::LDAP::ConnectionRefusedError => e
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
@@ -1,5 +1,5 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
- require 'net/ldap/version'
2
+ require_relative 'ldap/version'
3
3
 
4
4
  # :stopdoc:
5
5
  module Net
data/lib/net-ldap.rb CHANGED
@@ -1,2 +1,2 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
- require 'net/ldap'
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.16.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: 2017-02-24 00:00:00.000000000 Z
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: '10.0'
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: '10.0'
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.42.0
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: 0.42.0
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: '0'
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: '0'
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: '0'
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: '0'
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
- rubyforge_project:
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
@@ -1,9 +0,0 @@
1
- *~
2
- *.swp
3
- .rvmrc
4
- pkg/
5
- doc/
6
- publish/
7
- Gemfile.lock
8
- .bundle
9
- bin/
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