ruby-ldapserver 0.3.1
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.
- data/COPYING +27 -0
- data/ChangeLog +83 -0
- data/Manifest.txt +32 -0
- data/README +222 -0
- data/Rakefile +22 -0
- data/examples/README +89 -0
- data/examples/mkcert.rb +31 -0
- data/examples/rbslapd1.rb +111 -0
- data/examples/rbslapd2.rb +161 -0
- data/examples/rbslapd3.rb +172 -0
- data/examples/speedtest.rb +37 -0
- data/lib/ldap/server.rb +4 -0
- data/lib/ldap/server/connection.rb +273 -0
- data/lib/ldap/server/filter.rb +223 -0
- data/lib/ldap/server/match.rb +283 -0
- data/lib/ldap/server/operation.rb +487 -0
- data/lib/ldap/server/preforkserver.rb +93 -0
- data/lib/ldap/server/result.rb +71 -0
- data/lib/ldap/server/schema.rb +592 -0
- data/lib/ldap/server/server.rb +89 -0
- data/lib/ldap/server/syntax.rb +235 -0
- data/lib/ldap/server/tcpserver.rb +91 -0
- data/lib/ldap/server/util.rb +88 -0
- data/lib/ldap/server/version.rb +11 -0
- data/test/core.schema +582 -0
- data/test/encoding_test.rb +279 -0
- data/test/filter_test.rb +107 -0
- data/test/match_test.rb +59 -0
- data/test/schema_test.rb +113 -0
- data/test/syntax_test.rb +40 -0
- data/test/test_helper.rb +2 -0
- data/test/util_test.rb +51 -0
- metadata +98 -0
data/test/syntax_test.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
require 'ldap/server/syntax'
|
3
|
+
|
4
|
+
class SyntaxTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_integer
|
7
|
+
s = LDAP::Server::Syntax.find("1.3.6.1.4.1.1466.115.121.1.27")
|
8
|
+
assert_equal(LDAP::Server::Syntax, s.class)
|
9
|
+
assert_equal("Integer", s.desc)
|
10
|
+
assert_equal("( 1.3.6.1.4.1.1466.115.121.1.27 DESC 'Integer' )", s.to_def)
|
11
|
+
assert(!s.nhr)
|
12
|
+
assert(s.match("123"))
|
13
|
+
assert(!s.match("12A"))
|
14
|
+
assert_equal(123, s.value_from_s("123"))
|
15
|
+
assert_equal("456", s.value_to_s(456))
|
16
|
+
assert_equal("789", s.value_to_s("789"))
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_unknown
|
20
|
+
s = LDAP::Server::Syntax.find("1.4.7.1")
|
21
|
+
assert_equal(LDAP::Server::Syntax, s.class)
|
22
|
+
assert_equal("1.4.7.1", s.oid)
|
23
|
+
assert_equal("1.4.7.1", s.to_s)
|
24
|
+
assert_equal("( 1.4.7.1 )", s.to_def)
|
25
|
+
assert_equal("false", s.value_to_s(false)) # generic value_to_s
|
26
|
+
assert_equal("true", s.value_from_s("true")) # generic value_from_s
|
27
|
+
assert(s.match("123")) # match anything
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_nil
|
31
|
+
s = LDAP::Server::Syntax.find(nil)
|
32
|
+
assert_equal(nil, s)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_from_def
|
36
|
+
s = LDAP::Server::Syntax.from_def("( 1.2.3 DESC 'foobar' )")
|
37
|
+
assert_equal("1.2.3", s.oid)
|
38
|
+
assert_equal("foobar", s.desc)
|
39
|
+
end
|
40
|
+
end
|
data/test/test_helper.rb
ADDED
data/test/util_test.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
require 'ldap/server/util'
|
3
|
+
|
4
|
+
class TestLdapUtil < Test::Unit::TestCase
|
5
|
+
def test_split_dn
|
6
|
+
# examples from RFC 2253
|
7
|
+
assert_equal(
|
8
|
+
[{"cn"=>"Steve Kille"},{"o"=>"Isode Limited"},{"c"=>"GB"}],
|
9
|
+
LDAP::Server::Operation.split_dn("CN=Steve Kille , O=Isode Limited;C=GB")
|
10
|
+
)
|
11
|
+
assert_equal(
|
12
|
+
[{"ou"=>"Sales","cn"=>"J. Smith"},{"o"=>"Widget Inc."},{"c"=>"US"}],
|
13
|
+
LDAP::Server::Operation.split_dn("OU=Sales+CN=J. Smith,O=Widget Inc.,C=US")
|
14
|
+
)
|
15
|
+
assert_equal(
|
16
|
+
[{"cn"=>"L. Eagle"},{"o"=>"Sue, Grabbit and Runn"},{"c"=>"GB"}],
|
17
|
+
LDAP::Server::Operation.split_dn("CN=L. Eagle,O=Sue\\, Grabbit and Runn,C=GB")
|
18
|
+
)
|
19
|
+
assert_equal(
|
20
|
+
[{"cn"=>"Before\rAfter"},{"o"=>"Test"},{"c"=>"GB"}],
|
21
|
+
LDAP::Server::Operation.split_dn("CN=Before\\0DAfter,O=Test,C=GB")
|
22
|
+
)
|
23
|
+
res = LDAP::Server::Operation.split_dn("SN=Lu\\C4\\8Di\\C4\\87")
|
24
|
+
assert_equal([{"sn"=>"Lu\xc4\x8di\xc4\x87"}], res)
|
25
|
+
|
26
|
+
# Just for fun, let's try parsing it as UTF8
|
27
|
+
r = res[0]["sn"].scan(/./u)
|
28
|
+
assert_equal(["L", "u", "\xc4\x8d", "i", "\xc4\x87"], r)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_join_dn
|
32
|
+
# examples from RFC 2253
|
33
|
+
assert_equal(
|
34
|
+
"cn=Steve Kille,o=Isode Limited,c=GB",
|
35
|
+
LDAP::Server::Operation.join_dn([{"cn"=>"Steve Kille"},{"o"=>"Isode Limited"},{"c"=>"GB"}])
|
36
|
+
)
|
37
|
+
# These are equivalent
|
38
|
+
d1 = "ou=Sales+cn=J. Smith,o=Widget Inc.,c=US"
|
39
|
+
d2 = "cn=J. Smith+ou=Sales,o=Widget Inc.,c=US"
|
40
|
+
assert_equal(d1,
|
41
|
+
LDAP::Server::Operation.join_dn([[["ou","Sales"],["cn","J. Smith"]],[["o","Widget Inc."]],["c","US"]])
|
42
|
+
)
|
43
|
+
r = LDAP::Server::Operation.join_dn([{"ou"=>"Sales","cn"=>"J. Smith"},{"o"=>"Widget Inc."},{"c"=>"US"}])
|
44
|
+
assert(r == d1 || r == d2, "got #{r.inspect}, expected #{d1.inspect} or #{d2.inspect}")
|
45
|
+
assert_equal(
|
46
|
+
"cn=L. Eagle,o=Sue\\, Grabbit and Runn,c=GB",
|
47
|
+
LDAP::Server::Operation.join_dn([{"cn"=>"L. Eagle"},{"o"=>"Sue, Grabbit and Runn"},{"c"=>"GB"}])
|
48
|
+
)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby-ldapserver
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Brian Candler
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-01-16 00:00:00 -05:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: hoe
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.4.0
|
23
|
+
version:
|
24
|
+
description: ruby-ldapserver is a lightweight, pure-Ruby skeleton for implementing LDAP server applications.
|
25
|
+
email: B.Candler@pobox.com
|
26
|
+
executables: []
|
27
|
+
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files:
|
31
|
+
- Manifest.txt
|
32
|
+
files:
|
33
|
+
- COPYING
|
34
|
+
- ChangeLog
|
35
|
+
- Manifest.txt
|
36
|
+
- README
|
37
|
+
- Rakefile
|
38
|
+
- examples/README
|
39
|
+
- examples/mkcert.rb
|
40
|
+
- examples/rbslapd1.rb
|
41
|
+
- examples/rbslapd2.rb
|
42
|
+
- examples/rbslapd3.rb
|
43
|
+
- examples/speedtest.rb
|
44
|
+
- lib/ldap/server.rb
|
45
|
+
- lib/ldap/server/connection.rb
|
46
|
+
- lib/ldap/server/filter.rb
|
47
|
+
- lib/ldap/server/match.rb
|
48
|
+
- lib/ldap/server/operation.rb
|
49
|
+
- lib/ldap/server/preforkserver.rb
|
50
|
+
- lib/ldap/server/result.rb
|
51
|
+
- lib/ldap/server/schema.rb
|
52
|
+
- lib/ldap/server/server.rb
|
53
|
+
- lib/ldap/server/syntax.rb
|
54
|
+
- lib/ldap/server/tcpserver.rb
|
55
|
+
- lib/ldap/server/util.rb
|
56
|
+
- lib/ldap/server/version.rb
|
57
|
+
- test/core.schema
|
58
|
+
- test/encoding_test.rb
|
59
|
+
- test/filter_test.rb
|
60
|
+
- test/match_test.rb
|
61
|
+
- test/schema_test.rb
|
62
|
+
- test/syntax_test.rb
|
63
|
+
- test/test_helper.rb
|
64
|
+
- test/util_test.rb
|
65
|
+
has_rdoc: true
|
66
|
+
homepage: http://rubyforge.org/projects/ruby-ldapserver
|
67
|
+
post_install_message:
|
68
|
+
rdoc_options:
|
69
|
+
- --main
|
70
|
+
- README.txt
|
71
|
+
require_paths:
|
72
|
+
- lib
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "0"
|
78
|
+
version:
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: "0"
|
84
|
+
version:
|
85
|
+
requirements: []
|
86
|
+
|
87
|
+
rubyforge_project: ruby-ldapserver
|
88
|
+
rubygems_version: 1.0.1
|
89
|
+
signing_key:
|
90
|
+
specification_version: 2
|
91
|
+
summary: A pure-Ruby framework for building LDAP servers
|
92
|
+
test_files:
|
93
|
+
- test/encoding_test.rb
|
94
|
+
- test/filter_test.rb
|
95
|
+
- test/match_test.rb
|
96
|
+
- test/schema_test.rb
|
97
|
+
- test/syntax_test.rb
|
98
|
+
- test/util_test.rb
|