ldap_fluff 0.3.7 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ldap_fluff/generic_member_service.rb +2 -1
- data/test/ad_member_services_test.rb +11 -0
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54e77169e6958e3e3c2abaa3963fb82e2e897d90
|
4
|
+
data.tar.gz: 393ddfd24ecb0f28f0d301b3edb30a8788adebb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e90e3e250a2385281f112968328d60b8039dd7c701c9a0d866f77962022bd68a1e57c82229c396e93617fc12d4ca51ec0d38aaa7e32b15ab4f990c7dca83d21
|
7
|
+
data.tar.gz: b7e6b676a1b16506271951f7a7f299b6f2e4bb7ebe89fffd79925f4e77c67dd690f6bbc5b2005066ccbe08a4fceea7706dce09cd0dc2304ab27d5ee3874ceb3f
|
@@ -22,8 +22,9 @@ class LdapFluff::GenericMemberService
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def find_by_dn(dn)
|
25
|
-
entry, base = dn.split(
|
25
|
+
entry, base = dn.split(/(?<!\\),/, 2)
|
26
26
|
entry_attr, entry_value = entry.split('=', 2)
|
27
|
+
entry_value = entry_value.gsub('\,', ',')
|
27
28
|
user = @ldap.search(:filter => name_filter(entry_value, entry_attr), :base => base)
|
28
29
|
raise self.class::UIDNotFoundException if (user.nil? || user.empty?)
|
29
30
|
user
|
@@ -120,6 +120,17 @@ class TestADMemberService < MiniTest::Test
|
|
120
120
|
@ldap.verify
|
121
121
|
end
|
122
122
|
|
123
|
+
def test_find_by_dn_comma_in_cn
|
124
|
+
# In at least one AD installation, users who have commas in their CNs are
|
125
|
+
# returned by the server in answer to a group membership query with
|
126
|
+
# backslashes before the commas in the CNs. Such escaped commas should not
|
127
|
+
# be used when splitting the DN.
|
128
|
+
@ldap.expect(:search, [:result], [:filter => Net::LDAP::Filter.eq('cn', 'Bar, Foo'), :base => 'dc=example,dc=com'])
|
129
|
+
@adms.ldap = @ldap
|
130
|
+
assert_equal([:result], @adms.find_by_dn('cn=Bar\, Foo,dc=example,dc=com'))
|
131
|
+
@ldap.verify
|
132
|
+
end
|
133
|
+
|
123
134
|
def test_find_by_dn_missing_entry
|
124
135
|
@ldap.expect(:search, nil, [:filter => Net::LDAP::Filter.eq('cn', 'Foo Bar'), :base => 'dc=example,dc=com'])
|
125
136
|
@adms.ldap = @ldap
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ldap_fluff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan O'Mara
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-
|
15
|
+
date: 2015-11-20 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: net-ldap
|
@@ -70,6 +70,20 @@ dependencies:
|
|
70
70
|
- - '>='
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '0'
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: rubocop
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
type: :development
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
73
87
|
description: Simple library for binding & group querying on top of various LDAP implementations
|
74
88
|
email:
|
75
89
|
- jomara@redhat.com
|
@@ -118,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
132
|
requirements:
|
119
133
|
- - '>='
|
120
134
|
- !ruby/object:Gem::Version
|
121
|
-
version:
|
135
|
+
version: 1.9.3
|
122
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
137
|
requirements:
|
124
138
|
- - '>='
|