rubinius-net-ldap 0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rubocop.yml +5 -0
- data/.rubocop_todo.yml +462 -0
- data/.travis.yml +19 -0
- data/CONTRIBUTING.md +54 -0
- data/Contributors.rdoc +24 -0
- data/Gemfile +2 -0
- data/Hacking.rdoc +63 -0
- data/History.rdoc +260 -0
- data/License.rdoc +29 -0
- data/README.rdoc +65 -0
- data/Rakefile +17 -0
- data/lib/net-ldap.rb +2 -0
- data/lib/net/ber.rb +320 -0
- data/lib/net/ber/ber_parser.rb +182 -0
- data/lib/net/ber/core_ext.rb +55 -0
- data/lib/net/ber/core_ext/array.rb +96 -0
- data/lib/net/ber/core_ext/false_class.rb +10 -0
- data/lib/net/ber/core_ext/integer.rb +74 -0
- data/lib/net/ber/core_ext/string.rb +66 -0
- data/lib/net/ber/core_ext/true_class.rb +11 -0
- data/lib/net/ldap.rb +1229 -0
- data/lib/net/ldap/connection.rb +702 -0
- data/lib/net/ldap/dataset.rb +168 -0
- data/lib/net/ldap/dn.rb +225 -0
- data/lib/net/ldap/entry.rb +193 -0
- data/lib/net/ldap/error.rb +38 -0
- data/lib/net/ldap/filter.rb +778 -0
- data/lib/net/ldap/instrumentation.rb +23 -0
- data/lib/net/ldap/password.rb +38 -0
- data/lib/net/ldap/pdu.rb +297 -0
- data/lib/net/ldap/version.rb +5 -0
- data/lib/net/snmp.rb +264 -0
- data/rubinius-net-ldap.gemspec +37 -0
- data/script/install-openldap +112 -0
- data/script/package +7 -0
- data/script/release +16 -0
- data/test/ber/core_ext/test_array.rb +22 -0
- data/test/ber/core_ext/test_string.rb +25 -0
- data/test/ber/test_ber.rb +99 -0
- data/test/fixtures/cacert.pem +20 -0
- data/test/fixtures/openldap/memberof.ldif +33 -0
- data/test/fixtures/openldap/retcode.ldif +76 -0
- data/test/fixtures/openldap/slapd.conf.ldif +67 -0
- data/test/fixtures/seed.ldif +374 -0
- data/test/integration/test_add.rb +28 -0
- data/test/integration/test_ber.rb +30 -0
- data/test/integration/test_bind.rb +34 -0
- data/test/integration/test_delete.rb +31 -0
- data/test/integration/test_open.rb +88 -0
- data/test/integration/test_return_codes.rb +38 -0
- data/test/integration/test_search.rb +77 -0
- data/test/support/vm/openldap/.gitignore +1 -0
- data/test/support/vm/openldap/README.md +32 -0
- data/test/support/vm/openldap/Vagrantfile +33 -0
- data/test/test_dn.rb +44 -0
- data/test/test_entry.rb +65 -0
- data/test/test_filter.rb +223 -0
- data/test/test_filter_parser.rb +20 -0
- data/test/test_helper.rb +66 -0
- data/test/test_ldap.rb +60 -0
- data/test/test_ldap_connection.rb +404 -0
- data/test/test_ldif.rb +104 -0
- data/test/test_password.rb +10 -0
- data/test/test_rename.rb +77 -0
- data/test/test_search.rb +39 -0
- data/test/test_snmp.rb +119 -0
- data/test/test_ssl_ber.rb +40 -0
- data/test/testdata.ldif +101 -0
- data/testserver/ldapserver.rb +210 -0
- data/testserver/testdata.ldif +101 -0
- metadata +204 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'net/ldap/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{rubinius-net-ldap}
|
8
|
+
s.version = Net::LDAP::VERSION
|
9
|
+
s.license = "MIT"
|
10
|
+
s.authors = ["Francis Cianfrocca", "Emiel van de Laar", "Rory O'Connell", "Kaspar Schiess", "Austin Ziegler", "Michael Schaarschmidt"]
|
11
|
+
s.description = %q{Net::LDAP for Ruby (also called net-ldap) implements client access for the
|
12
|
+
Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for
|
13
|
+
accessing distributed directory services. Net::LDAP is written completely in
|
14
|
+
Ruby with no external dependencies. It supports most LDAP client features and a
|
15
|
+
subset of server features as well.
|
16
|
+
|
17
|
+
Net::LDAP has been tested against modern popular LDAP servers including
|
18
|
+
OpenLDAP and Active Directory. The current release is mostly compliant with
|
19
|
+
earlier versions of the IETF LDAP RFCs (2251-2256, 2829-2830, 3377, and 3771).
|
20
|
+
Our roadmap for Net::LDAP 1.0 is to gain full <em>client</em> compliance with
|
21
|
+
the most recent LDAP RFCs (4510-4519, plutions of 4520-4532).
|
22
|
+
|
23
|
+
NOTE: This is a fork of https://github.com/ruby-ldap/ruby-net-ldap to support
|
24
|
+
Ruby 1.8.7.
|
25
|
+
}
|
26
|
+
s.email = ["blackhedd@rubyforge.org", "gemiel@gmail.com", "rory.ocon@gmail.com", "kaspar.schiess@absurd.li", "austin@rubyforge.org"]
|
27
|
+
s.extra_rdoc_files = ["Contributors.rdoc", "Hacking.rdoc", "History.rdoc", "License.rdoc", "README.rdoc"]
|
28
|
+
s.files = `git ls-files`.split $/
|
29
|
+
s.test_files = s.files.grep(%r{^test})
|
30
|
+
s.homepage = %q{https://github.com/rubinius/ruby-net-ldap}
|
31
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
32
|
+
s.require_paths = ["lib"]
|
33
|
+
s.summary = %q{Net::LDAP for Ruby (also called net-ldap) implements client access for the Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for accessing distributed directory services}
|
34
|
+
|
35
|
+
s.add_development_dependency("flexmock", "~> 1.3")
|
36
|
+
s.add_development_dependency("rake", "~> 10.0")
|
37
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
#!/usr/bin/env sh
|
2
|
+
set -e
|
3
|
+
set -x
|
4
|
+
|
5
|
+
BASE_PATH="$( cd `dirname $0`/../test/fixtures/openldap && pwd )"
|
6
|
+
SEED_PATH="$( cd `dirname $0`/../test/fixtures && pwd )"
|
7
|
+
|
8
|
+
dpkg -s slapd time ldap-utils gnutls-bin ssl-cert > /dev/null ||\
|
9
|
+
DEBIAN_FRONTEND=noninteractive apt-get update -y --force-yes && \
|
10
|
+
DEBIAN_FRONTEND=noninteractive apt-get install -y --force-yes slapd time ldap-utils gnutls-bin ssl-cert
|
11
|
+
|
12
|
+
/etc/init.d/slapd stop
|
13
|
+
|
14
|
+
TMPDIR=$(mktemp -d)
|
15
|
+
cd $TMPDIR
|
16
|
+
|
17
|
+
# Delete data and reconfigure.
|
18
|
+
cp -v /var/lib/ldap/DB_CONFIG ./DB_CONFIG
|
19
|
+
rm -rf /etc/ldap/slapd.d/*
|
20
|
+
rm -rf /var/lib/ldap/*
|
21
|
+
cp -v ./DB_CONFIG /var/lib/ldap/DB_CONFIG
|
22
|
+
slapadd -F /etc/ldap/slapd.d -b "cn=config" -l $BASE_PATH/slapd.conf.ldif
|
23
|
+
# Load memberof and ref-int overlays and configure them.
|
24
|
+
slapadd -F /etc/ldap/slapd.d -b "cn=config" -l $BASE_PATH/memberof.ldif
|
25
|
+
# Load retcode overlay and configure
|
26
|
+
slapadd -F /etc/ldap/slapd.d -b "cn=config" -l $BASE_PATH/retcode.ldif
|
27
|
+
|
28
|
+
# Add base domain.
|
29
|
+
slapadd -F /etc/ldap/slapd.d <<EOM
|
30
|
+
dn: dc=rubyldap,dc=com
|
31
|
+
objectClass: top
|
32
|
+
objectClass: domain
|
33
|
+
dc: rubyldap
|
34
|
+
EOM
|
35
|
+
|
36
|
+
chown -R openldap.openldap /etc/ldap/slapd.d
|
37
|
+
chown -R openldap.openldap /var/lib/ldap
|
38
|
+
|
39
|
+
/etc/init.d/slapd start
|
40
|
+
|
41
|
+
# Import seed data.
|
42
|
+
# NOTE: use ldapadd in order for memberOf and refint to apply, instead of:
|
43
|
+
# cat $SEED_PATH/seed.ldif | slapadd -F /etc/ldap/slapd.d
|
44
|
+
/usr/bin/time ldapadd -x -D "cn=admin,dc=rubyldap,dc=com" -w passworD1 \
|
45
|
+
-h localhost -p 389 \
|
46
|
+
-f $SEED_PATH/seed.ldif
|
47
|
+
|
48
|
+
rm -rf $TMPDIR
|
49
|
+
|
50
|
+
# SSL
|
51
|
+
|
52
|
+
sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"
|
53
|
+
|
54
|
+
sh -c "cat > /etc/ssl/ca.info <<EOF
|
55
|
+
cn = rubyldap
|
56
|
+
ca
|
57
|
+
cert_signing_key
|
58
|
+
EOF"
|
59
|
+
|
60
|
+
# Create the self-signed CA certificate:
|
61
|
+
certtool --generate-self-signed \
|
62
|
+
--load-privkey /etc/ssl/private/cakey.pem \
|
63
|
+
--template /etc/ssl/ca.info \
|
64
|
+
--outfile /etc/ssl/certs/cacert.pem
|
65
|
+
|
66
|
+
# Make a private key for the server:
|
67
|
+
certtool --generate-privkey \
|
68
|
+
--bits 1024 \
|
69
|
+
--outfile /etc/ssl/private/ldap01_slapd_key.pem
|
70
|
+
|
71
|
+
sh -c "cat > /etc/ssl/ldap01.info <<EOF
|
72
|
+
organization = Example Company
|
73
|
+
cn = ldap01.example.com
|
74
|
+
tls_www_server
|
75
|
+
encryption_key
|
76
|
+
signing_key
|
77
|
+
expiration_days = 3650
|
78
|
+
EOF"
|
79
|
+
|
80
|
+
# Create the server certificate
|
81
|
+
certtool --generate-certificate \
|
82
|
+
--load-privkey /etc/ssl/private/ldap01_slapd_key.pem \
|
83
|
+
--load-ca-certificate /etc/ssl/certs/cacert.pem \
|
84
|
+
--load-ca-privkey /etc/ssl/private/cakey.pem \
|
85
|
+
--template /etc/ssl/ldap01.info \
|
86
|
+
--outfile /etc/ssl/certs/ldap01_slapd_cert.pem
|
87
|
+
|
88
|
+
ldapmodify -Y EXTERNAL -H ldapi:/// <<EOF | true
|
89
|
+
dn: cn=config
|
90
|
+
add: olcTLSCACertificateFile
|
91
|
+
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
|
92
|
+
-
|
93
|
+
add: olcTLSCertificateFile
|
94
|
+
olcTLSCertificateFile: /etc/ssl/certs/ldap01_slapd_cert.pem
|
95
|
+
-
|
96
|
+
add: olcTLSCertificateKeyFile
|
97
|
+
olcTLSCertificateKeyFile: /etc/ssl/private/ldap01_slapd_key.pem
|
98
|
+
EOF
|
99
|
+
|
100
|
+
# LDAP over TLS/SSL (ldaps://) is deprecated in favour of StartTLS. The latter
|
101
|
+
# refers to an existing LDAP session (listening on TCP port 389) becoming
|
102
|
+
# protected by TLS/SSL whereas LDAPS, like HTTPS, is a distinct
|
103
|
+
# encrypted-from-the-start protocol that operates over TCP port 636. But we
|
104
|
+
# enable it for testing here.
|
105
|
+
sed -i -e 's|^SLAPD_SERVICES="\(.*\)"|SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"|' /etc/default/slapd
|
106
|
+
|
107
|
+
adduser openldap ssl-cert
|
108
|
+
chgrp ssl-cert /etc/ssl/private/ldap01_slapd_key.pem
|
109
|
+
chmod g+r /etc/ssl/private/ldap01_slapd_key.pem
|
110
|
+
chmod o-r /etc/ssl/private/ldap01_slapd_key.pem
|
111
|
+
|
112
|
+
service slapd restart
|
data/script/package
ADDED
data/script/release
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
# Usage: script/release
|
3
|
+
# Build the package, tag a commit, push it to origin, and then release the
|
4
|
+
# package publicly.
|
5
|
+
|
6
|
+
set -e
|
7
|
+
|
8
|
+
version="$(script/package | grep Version: | awk '{print $2}')"
|
9
|
+
[ -n "$version" ] || exit 1
|
10
|
+
|
11
|
+
echo $version
|
12
|
+
git commit --allow-empty -a -m "Release $version"
|
13
|
+
git tag "v$version"
|
14
|
+
git push origin
|
15
|
+
git push origin "v$version"
|
16
|
+
gem push pkg/*-${version}.gem
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class TestBERArrayExtension < Test::Unit::TestCase
|
4
|
+
def test_control_code_array
|
5
|
+
control_codes = []
|
6
|
+
control_codes << ['1.2.3'.to_ber, true.to_ber].to_ber_sequence
|
7
|
+
control_codes << ['1.7.9'.to_ber, false.to_ber].to_ber_sequence
|
8
|
+
control_codes = control_codes.to_ber_sequence
|
9
|
+
res = [['1.2.3', true],['1.7.9',false]].to_ber_control
|
10
|
+
assert_equal control_codes, res
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_wrap_array_if_not_nested
|
14
|
+
result1 = ['1.2.3', true].to_ber_control
|
15
|
+
result2 = [['1.2.3', true]].to_ber_control
|
16
|
+
assert_equal result2, result1
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_empty_string_if_empty_array
|
20
|
+
assert_equal "", [].to_ber_control
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class TestBERStringExtension < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@bind_request = "0$\002\001\001`\037\002\001\003\004\rAdministrator\200\vad_is_bogus UNCONSUMED".b
|
6
|
+
@result = @bind_request.read_ber!(Net::LDAP::AsnSyntax)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_parse_ber
|
10
|
+
assert_equal [1, [3, "Administrator", "ad_is_bogus"]], @result
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_unconsumed_message
|
14
|
+
assert_equal " UNCONSUMED", @bind_request
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_exception_does_not_modify_string
|
18
|
+
original = "0$\002\001\001`\037\002\001\003\004\rAdministrator\200\vad_is_bogus".b
|
19
|
+
duplicate = original.dup
|
20
|
+
flexmock(StringIO).new_instances.should_receive(:read_ber).and_raise(Net::BER::BerError)
|
21
|
+
duplicate.read_ber!(Net::LDAP::AsnSyntax) rescue Net::BER::BerError
|
22
|
+
|
23
|
+
assert_equal original, duplicate
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class TestBEREncoding < Test::Unit::TestCase
|
4
|
+
def test_empty_array
|
5
|
+
assert_equal [], [].to_ber.read_ber
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_array
|
9
|
+
ary = [1,2,3]
|
10
|
+
encoded_ary = ary.map { |el| el.to_ber }.to_ber
|
11
|
+
|
12
|
+
assert_equal ary, encoded_ary.read_ber
|
13
|
+
end
|
14
|
+
|
15
|
+
# http://tools.ietf.org/html/rfc4511#section-5.1
|
16
|
+
def test_true
|
17
|
+
assert_equal "\x01\x01\xFF".b, true.to_ber
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_false
|
21
|
+
assert_equal "\x01\x01\x00", false.to_ber
|
22
|
+
end
|
23
|
+
|
24
|
+
# Sample based
|
25
|
+
{
|
26
|
+
0 => "\x02\x01\x00",
|
27
|
+
1 => "\x02\x01\x01",
|
28
|
+
127 => "\x02\x01\x7F",
|
29
|
+
128 => "\x02\x02\x00\x80",
|
30
|
+
255 => "\x02\x02\x00\xFF",
|
31
|
+
256 => "\x02\x02\x01\x00",
|
32
|
+
65535 => "\x02\x03\x00\xFF\xFF",
|
33
|
+
65536 => "\x02\x03\x01\x00\x00",
|
34
|
+
8388607 => "\x02\x03\x7F\xFF\xFF",
|
35
|
+
8388608 => "\x02\x04\x00\x80\x00\x00",
|
36
|
+
16_777_215 => "\x02\x04\x00\xFF\xFF\xFF",
|
37
|
+
0x01000000 => "\x02\x04\x01\x00\x00\x00",
|
38
|
+
0x3FFFFFFF => "\x02\x04\x3F\xFF\xFF\xFF",
|
39
|
+
0x4FFFFFFF => "\x02\x04\x4F\xFF\xFF\xFF",
|
40
|
+
|
41
|
+
# Some odd samples...
|
42
|
+
5 => "\x02\x01\x05",
|
43
|
+
500 => "\x02\x02\x01\xf4",
|
44
|
+
50_000 => "\x02\x03\x00\xC3\x50",
|
45
|
+
5_000_000_000 => "\x02\x05\x01\x2a\x05\xF2\x00",
|
46
|
+
|
47
|
+
# negatives
|
48
|
+
-1 => "\x02\x01\xFF",
|
49
|
+
-127 => "\x02\x01\x81",
|
50
|
+
-128 => "\x02\x01\x80",
|
51
|
+
-255 => "\x02\x02\xFF\x01",
|
52
|
+
-256 => "\x02\x02\xFF\x00",
|
53
|
+
-65535 => "\x02\x03\xFF\x00\x01",
|
54
|
+
-65536 => "\x02\x03\xFF\x00\x00",
|
55
|
+
-65537 => "\x02\x03\xFE\xFF\xFF",
|
56
|
+
-8388607 => "\x02\x03\x80\x00\x01",
|
57
|
+
-8388608 => "\x02\x03\x80\x00\x00",
|
58
|
+
-16_777_215 => "\x02\x04\xFF\x00\x00\x01",
|
59
|
+
}.each do |number, expected_encoding|
|
60
|
+
define_method "test_encode_#{number}" do
|
61
|
+
assert_equal expected_encoding.b, number.to_ber
|
62
|
+
end
|
63
|
+
|
64
|
+
define_method "test_decode_encoded_#{number}" do
|
65
|
+
assert_equal number, expected_encoding.b.read_ber
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# Round-trip encoding: This is mostly to be sure to cover Bignums well.
|
70
|
+
def test_powers_of_two
|
71
|
+
100.times do |p|
|
72
|
+
n = 2 << p
|
73
|
+
|
74
|
+
assert_equal n, n.to_ber.read_ber
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_powers_of_ten
|
79
|
+
100.times do |p|
|
80
|
+
n = 5 * 10**p
|
81
|
+
|
82
|
+
assert_equal n, n.to_ber.read_ber
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
class TestBERDecoding < Test::Unit::TestCase
|
88
|
+
def test_decode_number
|
89
|
+
assert_equal 6, "\002\001\006".read_ber(Net::LDAP::AsnSyntax)
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_decode_string
|
93
|
+
assert_equal "testing", "\004\007testing".read_ber(Net::LDAP::AsnSyntax)
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_decode_ldap_bind_request
|
97
|
+
assert_equal [1, [3, "Administrator", "ad_is_bogus"]], "0$\002\001\001`\037\002\001\003\004\rAdministrator\200\vad_is_bogus".read_ber(Net::LDAP::AsnSyntax)
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDRzCCAf+gAwIBAgIEVHpbmjANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhy
|
3
|
+
dWJ5bGRhcDAeFw0xNDExMjkyMzQ5NDZaFw0xNTExMjkyMzQ5NDZaMBMxETAPBgNV
|
4
|
+
BAMTCHJ1YnlsZGFwMIIBUjANBgkqhkiG9w0BAQEFAAOCAT8AMIIBOgKCATEA4pKe
|
5
|
+
cDCNuL53fkpO/WSAS+gmMTsOs+oOK71kZlk2QT/MBz8TxC6m358qCADjnXcMVVxa
|
6
|
+
ySQbQlVKZMkIvLNciZbiLDgC5II0NbHACNa8rqenoKRjS4J9W3OhA8EmnXn/Me+8
|
7
|
+
uMCI9tfnKNRZYdkQZlra4I+Idn+xYfl/5q5b/7ZjPS2zY/585hFEYE+5vfOZVBSU
|
8
|
+
3HMNSeuJvTehLv7dD7aQfXNM4cRgHXequkJQ/HLLFAO4AgJ+LJrFWpj7GWz3crgr
|
9
|
+
9G5px4T78wJH3NQiOsG6UBXPw8c4T+Z6GAWX2l1zs1gZsaiCVbAraqK3404lL7yp
|
10
|
+
+ThbsW3ifzgNPhmjScXBLdbEDrrAKosW7kkTOGzxiMCBmNlj2SKhcztoduAtfF1f
|
11
|
+
Fs2Jk8MRTHwO8ThD7wIDAQABo0MwQTAPBgNVHRMBAf8EBTADAQH/MA8GA1UdDwEB
|
12
|
+
/wQFAwMHBAAwHQYDVR0OBBYEFJDm67ekyFu4/Z7VcO6Vk/5pinGcMA0GCSqGSIb3
|
13
|
+
DQEBCwUAA4IBMQDHeEPzfYRtjynpUKyrtxx/6ZVOfCLuz4eHkBZggz/pJacDCv/a
|
14
|
+
I//W03XCk8RWq/fWVVUzvxXgPwnYcw992PLM7XW81zp6ruRUDWooYnjHZZz3bRhe
|
15
|
+
kC4QvM2mZhcsMVmhmWWKZn81qXgVdUY1XNRhk87cuXjF/UTpEieFvWAsCUkFZkqB
|
16
|
+
AmySCuI/FuPaauT1YAltkIlYAEIGNJGZDMf2BTVUQpXhTXeS9/AZWLNDBwiq+fwo
|
17
|
+
YYnsr9MnBXCEmg1gVSR/Ay2AZmbYfiYtb5kU8uq2lSWAUb4LX6HZl82wo3OilrJ2
|
18
|
+
WXl6Qf+Fcy4qqkRt4AKHjtzizpEDCOVYuuG0Zoy+QnxNXRsEzpb8ymnJFrcgYfk/
|
19
|
+
6Lv2gWAFl5FqCZp7gBWg55eL2coT4C+mbNTF
|
20
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,33 @@
|
|
1
|
+
dn: cn=module,cn=config
|
2
|
+
cn: module
|
3
|
+
objectClass: olcModuleList
|
4
|
+
objectClass: top
|
5
|
+
olcModulePath: /usr/lib/ldap
|
6
|
+
olcModuleLoad: memberof.la
|
7
|
+
|
8
|
+
dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config
|
9
|
+
objectClass: olcConfig
|
10
|
+
objectClass: olcMemberOf
|
11
|
+
objectClass: olcOverlayConfig
|
12
|
+
objectClass: top
|
13
|
+
olcOverlay: memberof
|
14
|
+
olcMemberOfDangling: ignore
|
15
|
+
olcMemberOfRefInt: TRUE
|
16
|
+
olcMemberOfGroupOC: groupOfNames
|
17
|
+
olcMemberOfMemberAD: member
|
18
|
+
olcMemberOfMemberOfAD: memberOf
|
19
|
+
|
20
|
+
dn: cn=module,cn=config
|
21
|
+
cn: module
|
22
|
+
objectclass: olcModuleList
|
23
|
+
objectclass: top
|
24
|
+
olcmoduleload: refint.la
|
25
|
+
olcmodulepath: /usr/lib/ldap
|
26
|
+
|
27
|
+
dn: olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
|
28
|
+
objectClass: olcConfig
|
29
|
+
objectClass: olcOverlayConfig
|
30
|
+
objectClass: olcRefintConfig
|
31
|
+
objectClass: top
|
32
|
+
olcOverlay: {1}refint
|
33
|
+
olcRefintAttribute: memberof member manager owner
|
@@ -0,0 +1,76 @@
|
|
1
|
+
dn: cn=module,cn=config
|
2
|
+
cn: module
|
3
|
+
objectClass: olcModuleList
|
4
|
+
objectClass: top
|
5
|
+
olcModulePath: /usr/lib/ldap
|
6
|
+
olcModuleLoad: retcode.la
|
7
|
+
|
8
|
+
# source: http://www.opensource.apple.com/source/OpenLDAP/OpenLDAP-186/OpenLDAP/tests/data/retcode.conf?txt
|
9
|
+
|
10
|
+
dn: olcOverlay={2}retcode,olcDatabase={1}hdb,cn=config
|
11
|
+
objectClass: olcConfig
|
12
|
+
objectClass: olcRetcodeConfig
|
13
|
+
objectClass: olcOverlayConfig
|
14
|
+
objectClass: top
|
15
|
+
olcOverlay: retcode
|
16
|
+
olcRetcodeParent: ou=Retcodes,dc=rubyldap,dc=com
|
17
|
+
olcRetcodeInDir: TRUE
|
18
|
+
olcRetcodeSleep: 0
|
19
|
+
olcRetcodeItem: "cn=success" 0x00
|
20
|
+
olcRetcodeItem: "cn=success w/ delay" 0x00 sleeptime=2
|
21
|
+
olcRetcodeItem: "cn=operationsError" 0x01
|
22
|
+
olcRetcodeItem: "cn=protocolError" 0x02
|
23
|
+
olcRetcodeItem: "cn=timeLimitExceeded" 0x03 op=search
|
24
|
+
olcRetcodeItem: "cn=sizeLimitExceeded" 0x04 op=search
|
25
|
+
olcRetcodeItem: "cn=compareFalse" 0x05 op=compare
|
26
|
+
olcRetcodeItem: "cn=compareTrue" 0x06 op=compare
|
27
|
+
olcRetcodeItem: "cn=authMethodNotSupported" 0x07
|
28
|
+
olcRetcodeItem: "cn=strongAuthNotSupported" 0x07 text="same as authMethodNotSupported"
|
29
|
+
olcRetcodeItem: "cn=strongAuthRequired" 0x08
|
30
|
+
olcRetcodeItem: "cn=strongerAuthRequired" 0x08 text="same as strongAuthRequired"
|
31
|
+
olcRetcodeItem: "cn=referral" 0x0a text="LDAPv3" ref="ldap://:9019"
|
32
|
+
olcRetcodeItem: "cn=adminLimitExceeded" 0x0b text="LDAPv3"
|
33
|
+
olcRetcodeItem: "cn=unavailableCriticalExtension" 0x0c text="LDAPv3"
|
34
|
+
olcRetcodeItem: "cn=confidentialityRequired" 0x0d text="LDAPv3"
|
35
|
+
olcRetcodeItem: "cn=saslBindInProgress" 0x0e text="LDAPv3"
|
36
|
+
olcRetcodeItem: "cn=noSuchAttribute" 0x10
|
37
|
+
olcRetcodeItem: "cn=undefinedAttributeType" 0x11
|
38
|
+
olcRetcodeItem: "cn=inappropriateMatching" 0x12
|
39
|
+
olcRetcodeItem: "cn=constraintViolation" 0x13
|
40
|
+
olcRetcodeItem: "cn=attributeOrValueExists" 0x14
|
41
|
+
olcRetcodeItem: "cn=invalidAttributeSyntax" 0x15
|
42
|
+
olcRetcodeItem: "cn=noSuchObject" 0x20
|
43
|
+
olcRetcodeItem: "cn=aliasProblem" 0x21
|
44
|
+
olcRetcodeItem: "cn=invalidDNSyntax" 0x22
|
45
|
+
olcRetcodeItem: "cn=aliasDereferencingProblem" 0x24
|
46
|
+
olcRetcodeItem: "cn=proxyAuthzFailure" 0x2F text="LDAPv3 proxy authorization"
|
47
|
+
olcRetcodeItem: "cn=inappropriateAuthentication" 0x30
|
48
|
+
olcRetcodeItem: "cn=invalidCredentials" 0x31
|
49
|
+
olcRetcodeItem: "cn=insufficientAccessRights" 0x32
|
50
|
+
olcRetcodeItem: "cn=busy" 0x33
|
51
|
+
olcRetcodeItem: "cn=unavailable" 0x34
|
52
|
+
olcRetcodeItem: "cn=unwillingToPerform" 0x35
|
53
|
+
olcRetcodeItem: "cn=loopDetect" 0x36
|
54
|
+
olcRetcodeItem: "cn=namingViolation" 0x40
|
55
|
+
olcRetcodeItem: "cn=objectClassViolation" 0x41
|
56
|
+
olcRetcodeItem: "cn=notAllowedOnNonleaf" 0x42
|
57
|
+
olcRetcodeItem: "cn=notAllowedOnRDN" 0x43
|
58
|
+
olcRetcodeItem: "cn=entryAlreadyExists" 0x44
|
59
|
+
olcRetcodeItem: "cn=objectClassModsProhibited" 0x45
|
60
|
+
olcRetcodeItem: "cn=resultsTooLarge" 0x46 text="CLDAP"
|
61
|
+
olcRetcodeItem: "cn=affectsMultipleDSAs" 0x47 text="LDAPv3"
|
62
|
+
olcRetcodeItem: "cn=other" 0x50
|
63
|
+
olcRetcodeItem: "cn=cupResourcesExhausted" 0x71
|
64
|
+
olcRetcodeItem: "cn=cupSecurityViolation" 0x72
|
65
|
+
olcRetcodeItem: "cn=cupInvalidData" 0x73
|
66
|
+
olcRetcodeItem: "cn=cupUnsupportedScheme" 0x74
|
67
|
+
olcRetcodeItem: "cn=cupReloadRequired" 0x75
|
68
|
+
olcRetcodeItem: "cn=cancelled" 0x76
|
69
|
+
olcRetcodeItem: "cn=noSuchOperation" 0x77
|
70
|
+
olcRetcodeItem: "cn=tooLate" 0x78
|
71
|
+
olcRetcodeItem: "cn=cannotCancel" 0x79
|
72
|
+
olcRetcodeItem: "cn=syncRefreshRequired" 0x4100
|
73
|
+
olcRetcodeItem: "cn=noOperation" 0x410e
|
74
|
+
olcRetcodeItem: "cn=assertionFailed" 0x410f
|
75
|
+
olcRetcodeItem: "cn=noReferralsFound" 0x4110
|
76
|
+
olcRetcodeItem: "cn=cannotChain" 0x4111
|