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/.travis.yml
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
rvm:
|
3
|
-
- 2.0.0
|
4
|
-
- 2.1
|
5
|
-
- 2.2
|
6
|
-
- 2.3
|
7
|
-
- 2.4
|
8
|
-
- 2.5
|
9
|
-
- 2.6
|
10
|
-
# optional
|
11
|
-
- ruby-head
|
12
|
-
- jruby-19mode
|
13
|
-
- jruby-head
|
14
|
-
- rbx-2
|
15
|
-
|
16
|
-
addons:
|
17
|
-
hosts:
|
18
|
-
- ldap.example.org # needed for TLS verification
|
19
|
-
|
20
|
-
services:
|
21
|
-
- docker
|
22
|
-
|
23
|
-
env:
|
24
|
-
- INTEGRATION=openldap
|
25
|
-
|
26
|
-
before_install:
|
27
|
-
- gem update bundler
|
28
|
-
|
29
|
-
install:
|
30
|
-
- >
|
31
|
-
docker run \
|
32
|
-
--hostname ldap.example.org \
|
33
|
-
--env LDAP_TLS_VERIFY_CLIENT=try \
|
34
|
-
-p 389:389 \
|
35
|
-
-p 636:636 \
|
36
|
-
-v "$(pwd)"/test/fixtures/ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom \
|
37
|
-
--name openldap \
|
38
|
-
--detach \
|
39
|
-
osixia/openldap:1.3.0 \
|
40
|
-
--copy-service \
|
41
|
-
--loglevel debug \
|
42
|
-
- bundle install
|
43
|
-
|
44
|
-
script: bundle exec rake ci
|
45
|
-
|
46
|
-
matrix:
|
47
|
-
allow_failures:
|
48
|
-
- rvm: ruby-head
|
49
|
-
- rvm: jruby-19mode
|
50
|
-
- rvm: jruby-head
|
51
|
-
- rvm: rbx-2
|
52
|
-
fast_finish: true
|
53
|
-
|
54
|
-
notifications:
|
55
|
-
email: false
|
data/CONTRIBUTING.md
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
# Contribution guide
|
2
|
-
|
3
|
-
Thank you for using net-ldap. If you'd like to help, keep these guidelines in
|
4
|
-
mind.
|
5
|
-
|
6
|
-
## Submitting a New Issue
|
7
|
-
|
8
|
-
If you find a bug, or would like to propose an idea, file a [new issue][issues].
|
9
|
-
Include as many details as possible:
|
10
|
-
|
11
|
-
- Version of net-ldap gem
|
12
|
-
- LDAP server version
|
13
|
-
- Queries, connection information, any other input
|
14
|
-
- output or error messages
|
15
|
-
|
16
|
-
## Sending a Pull Request
|
17
|
-
|
18
|
-
[Pull requests][pr] are always welcome!
|
19
|
-
|
20
|
-
Check out [the project's issues list][issues] for ideas on what could be improved.
|
21
|
-
|
22
|
-
Before sending, please add tests and ensure the test suite passes.
|
23
|
-
|
24
|
-
To run the full suite:
|
25
|
-
|
26
|
-
`bundle exec rake`
|
27
|
-
|
28
|
-
To run a specific test file:
|
29
|
-
|
30
|
-
`bundle exec ruby test/test_ldap.rb`
|
31
|
-
|
32
|
-
To run a specific test:
|
33
|
-
|
34
|
-
`bundle exec ruby test/test_ldap.rb -n test_instrument_bind`
|
35
|
-
|
36
|
-
Pull requests will trigger automatic continuous integration builds on
|
37
|
-
[TravisCI][travis]. To run integration tests locally, see the `test/support`
|
38
|
-
folder.
|
39
|
-
|
40
|
-
## Styleguide
|
41
|
-
|
42
|
-
```ruby
|
43
|
-
# 1.9+ style hashes
|
44
|
-
{key: "value"}
|
45
|
-
|
46
|
-
# Multi-line arguments with `\`
|
47
|
-
MyClass.new \
|
48
|
-
foo: 'bar',
|
49
|
-
baz: 'garply'
|
50
|
-
```
|
51
|
-
|
52
|
-
[issues]: https://github.com/ruby-net-ldap/ruby-net-ldap/issues
|
53
|
-
[pr]: https://help.github.com/articles/using-pull-requests
|
54
|
-
[travis]: https://travis-ci.org/ruby-ldap/ruby-net-ldap
|
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# -*- ruby encoding: utf-8 -*-
|
2
|
-
# vim: syntax=ruby
|
3
|
-
|
4
|
-
require 'rake/testtask'
|
5
|
-
require 'rubocop/rake_task'
|
6
|
-
require 'bundler'
|
7
|
-
|
8
|
-
RuboCop::RakeTask.new
|
9
|
-
|
10
|
-
Rake::TestTask.new do |t|
|
11
|
-
t.libs << 'test'
|
12
|
-
t.test_files = FileList['test/**/test_*.rb']
|
13
|
-
t.verbose = true
|
14
|
-
t.description = 'Run tests, set INTEGRATION=openldap to run integration tests, INTEGRATION_HOST and INTEGRATION_PORT are also supported'
|
15
|
-
end
|
16
|
-
|
17
|
-
desc 'Run tests and RuboCop (RuboCop runs on mri only)'
|
18
|
-
task ci: [:test]
|
19
|
-
|
20
|
-
desc 'Run tests and RuboCop'
|
21
|
-
task rubotest: [:test, :rubocop]
|
22
|
-
|
23
|
-
task default: Bundler.current_ruby.mri? ? [:test, :rubocop] : [:test]
|
data/net-ldap.gemspec
DELETED
@@ -1,37 +0,0 @@
|
|
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{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
|
-
s.email = ["blackhedd@rubyforge.org", "gemiel@gmail.com", "rory.ocon@gmail.com", "kaspar.schiess@absurd.li", "austin@rubyforge.org"]
|
23
|
-
s.extra_rdoc_files = ["Contributors.rdoc", "Hacking.rdoc", "History.rdoc", "License.rdoc", "README.rdoc"]
|
24
|
-
s.files = `git ls-files`.split $/
|
25
|
-
s.test_files = s.files.grep(%r{^test})
|
26
|
-
s.homepage = %q{http://github.com/ruby-ldap/ruby-net-ldap}
|
27
|
-
s.rdoc_options = ["--main", "README.rdoc"]
|
28
|
-
s.require_paths = ["lib"]
|
29
|
-
s.required_ruby_version = ">= 2.0.0"
|
30
|
-
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}
|
31
|
-
|
32
|
-
s.add_development_dependency("flexmock", "~> 1.3")
|
33
|
-
s.add_development_dependency("rake", "~> 10.0")
|
34
|
-
s.add_development_dependency("rubocop", "~> 0.42.0")
|
35
|
-
s.add_development_dependency("test-unit")
|
36
|
-
s.add_development_dependency("byebug")
|
37
|
-
end
|
data/script/changelog
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
# Usage: script/changelog [-r <repo>] [-b <base>] [-h <head>]
|
3
|
-
#
|
4
|
-
# repo: BASE string of GitHub REPOsitory url. e.g. "user_or_org/REPOsitory". Defaults to git remote url.
|
5
|
-
# base: git ref to compare from. e.g. "v1.3.1". Defaults to latest git tag.
|
6
|
-
# head: git ref to compare to. Defaults to "HEAD".
|
7
|
-
#
|
8
|
-
# Generate a changelog preview from pull requests merged between `base` and
|
9
|
-
# `head`.
|
10
|
-
#
|
11
|
-
# https://github.com/jch/release-scripts/blob/master/changelog
|
12
|
-
set -e
|
13
|
-
|
14
|
-
[ $# -eq 0 ] && set -- --help
|
15
|
-
while [[ $# > 1 ]]
|
16
|
-
do
|
17
|
-
key="$1"
|
18
|
-
case $key in
|
19
|
-
-r|--repo)
|
20
|
-
repo="$2"
|
21
|
-
shift
|
22
|
-
;;
|
23
|
-
-b|--base)
|
24
|
-
base="$2"
|
25
|
-
shift
|
26
|
-
;;
|
27
|
-
-h|--head)
|
28
|
-
head="$2"
|
29
|
-
shift
|
30
|
-
;;
|
31
|
-
*)
|
32
|
-
;;
|
33
|
-
esac
|
34
|
-
shift
|
35
|
-
done
|
36
|
-
|
37
|
-
repo="${repo:-$(git remote -v | grep push | awk '{print $2}' | cut -d'/' -f4- | sed 's/\.git//')}"
|
38
|
-
base="${base:-$(git tag -l | sort -t. -k 1,1n -k 2,2n -k 3,3n | tail -n 1)}"
|
39
|
-
head="${head:-HEAD}"
|
40
|
-
api_url="https://api.github.com"
|
41
|
-
|
42
|
-
# get merged PR's. Better way is to query the API for these, but this is easier
|
43
|
-
for pr in $(git log --oneline $base..$head | grep "Merge pull request" | awk '{gsub("#",""); print $5}')
|
44
|
-
do
|
45
|
-
# frustrated with trying to pull out the right values, fell back to ruby
|
46
|
-
curl -s "$api_url/repos/$repo/pulls/$pr" | ruby -rjson -e 'pr=JSON.parse(STDIN.read); puts "* #{pr[%q(title)]} {##{pr[%q(number)]}}[#{pr[%q(html_url)]}]"'
|
47
|
-
done
|
data/script/ldap-docker
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
# Usage: script/ldap-docker
|
3
|
-
#
|
4
|
-
# Starts a openldap docker container ready for integration tests
|
5
|
-
|
6
|
-
docker run --rm -ti \
|
7
|
-
--hostname ldap.example.org \
|
8
|
-
--env LDAP_TLS_VERIFY_CLIENT=try \
|
9
|
-
-p 389:389 -p 636:636 \
|
10
|
-
-v "$(pwd)"/test/fixtures/ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom \
|
11
|
-
--name my-openldap-container \
|
12
|
-
osixia/openldap:1.3.0 --copy-service --loglevel debug
|
data/script/package
DELETED
data/script/release
DELETED
@@ -1,16 +0,0 @@
|
|
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
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
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
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require_relative '../../test_helper'
|
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
|
data/test/ber/test_ber.rb
DELETED
@@ -1,153 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
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(&: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
|
-
|
86
|
-
if "Ruby 1.9".respond_to?(:encoding)
|
87
|
-
def test_encode_utf8_strings
|
88
|
-
assert_equal "\x04\x02\xC3\xA5".b, "\u00e5".force_encoding("UTF-8").to_ber
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_utf8_encodable_strings
|
92
|
-
assert_equal "\x04\nteststring", "teststring".encode("US-ASCII").to_ber
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_encode_binary_data
|
96
|
-
# This is used for searching for GUIDs in Active Directory
|
97
|
-
assert_equal "\x04\x10" + "j1\xB4\xA1*\xA2zA\xAC\xA9`?'\xDDQ\x16".b,
|
98
|
-
["6a31b4a12aa27a41aca9603f27dd5116"].pack("H*").to_ber_bin
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_non_utf8_encodable_strings
|
102
|
-
assert_equal "\x04\x01\x81".b, "\x81".to_ber
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
class TestBERDecoding < Test::Unit::TestCase
|
108
|
-
def test_decode_number
|
109
|
-
assert_equal 6, "\002\001\006".read_ber(Net::LDAP::AsnSyntax)
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_decode_string
|
113
|
-
assert_equal "testing", "\004\007testing".read_ber(Net::LDAP::AsnSyntax)
|
114
|
-
end
|
115
|
-
|
116
|
-
def test_decode_ldap_bind_request
|
117
|
-
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)
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
class TestBERIdentifiedString < Test::Unit::TestCase
|
122
|
-
def test_binary_data
|
123
|
-
data = ["6a31b4a12aa27a41aca9603f27dd5116"].pack("H*").force_encoding("ASCII-8BIT")
|
124
|
-
bis = Net::BER::BerIdentifiedString.new(data)
|
125
|
-
|
126
|
-
assert bis.valid_encoding?, "should be a valid encoding"
|
127
|
-
assert_equal "ASCII-8BIT", bis.encoding.name
|
128
|
-
end
|
129
|
-
|
130
|
-
def test_ascii_data_in_utf8
|
131
|
-
data = "some text".force_encoding("UTF-8")
|
132
|
-
bis = Net::BER::BerIdentifiedString.new(data)
|
133
|
-
|
134
|
-
assert bis.valid_encoding?, "should be a valid encoding"
|
135
|
-
assert_equal "UTF-8", bis.encoding.name
|
136
|
-
end
|
137
|
-
|
138
|
-
def test_umlaut_data_in_utf8
|
139
|
-
data = "Müller".force_encoding("UTF-8")
|
140
|
-
bis = Net::BER::BerIdentifiedString.new(data)
|
141
|
-
|
142
|
-
assert bis.valid_encoding?, "should be a valid encoding"
|
143
|
-
assert_equal "UTF-8", bis.encoding.name
|
144
|
-
end
|
145
|
-
|
146
|
-
def test_utf8_data_in_utf8
|
147
|
-
data = ["e4b8ad"].pack("H*").force_encoding("UTF-8")
|
148
|
-
bis = Net::BER::BerIdentifiedString.new(data)
|
149
|
-
|
150
|
-
assert bis.valid_encoding?, "should be a valid encoding"
|
151
|
-
assert_equal "UTF-8", bis.encoding.name
|
152
|
-
end
|
153
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIC0zCCAlmgAwIBAgIUCfQ+m0pgZ/BjYAJvxrn/bdGNZokwCgYIKoZIzj0EAwMw
|
3
|
-
gZYxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxBMUEgQ2FyIFdhc2gxJDAiBgNVBAsT
|
4
|
-
G0luZm9ybWF0aW9uIFRlY2hub2xvZ3kgRGVwLjEUMBIGA1UEBxMLQWxidXF1ZXJx
|
5
|
-
dWUxEzARBgNVBAgTCk5ldyBNZXhpY28xHzAdBgNVBAMTFmRvY2tlci1saWdodC1i
|
6
|
-
YXNlaW1hZ2UwHhcNMTUxMjIzMTM1MzAwWhcNMjAxMjIxMTM1MzAwWjCBljELMAkG
|
7
|
-
A1UEBhMCVVMxFTATBgNVBAoTDEExQSBDYXIgV2FzaDEkMCIGA1UECxMbSW5mb3Jt
|
8
|
-
YXRpb24gVGVjaG5vbG9neSBEZXAuMRQwEgYDVQQHEwtBbGJ1cXVlcnF1ZTETMBEG
|
9
|
-
A1UECBMKTmV3IE1leGljbzEfMB0GA1UEAxMWZG9ja2VyLWxpZ2h0LWJhc2VpbWFn
|
10
|
-
ZTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMZf/12pupAgl8Sm+j8GmjNeNbSFAZWW
|
11
|
-
oTmIvf2Mu4LWPHy4bTldkQgHUbBpT3xWz8f0lB/ru7596CHsGoL2A28hxuclq5hb
|
12
|
-
Ux1yrIt3bJIY3TuiX25HGTe6kGCJPB1aLaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG
|
13
|
-
A1UdEwEB/wQIMAYBAf8CAQIwHQYDVR0OBBYEFE+l6XolXDAYnGLTl4W6ULKHrm74
|
14
|
-
MB8GA1UdIwQYMBaAFE+l6XolXDAYnGLTl4W6ULKHrm74MAoGCCqGSM49BAMDA2gA
|
15
|
-
MGUCMQCXLZj8okyxW6UTL7hribUUbu63PbjuwIXnwi420DdNsvA9A7fcQEXScWFL
|
16
|
-
XAGC8rkCMGcqwXZPSRfwuI9r+R11gTrP92hnaVxs9sjRikctpkQpOyNlIXFPopFK
|
17
|
-
8FdfWPypvA==
|
18
|
-
-----END CERTIFICATE-----
|
@@ -1,75 +0,0 @@
|
|
1
|
-
dn: cn=module{0},cn=config
|
2
|
-
changetype: modify
|
3
|
-
add: olcModuleLoad
|
4
|
-
olcModuleLoad: retcode
|
5
|
-
|
6
|
-
# source: http://www.opensource.apple.com/source/OpenLDAP/OpenLDAP-186/OpenLDAP/tests/data/retcode.conf?txt
|
7
|
-
|
8
|
-
dn: olcOverlay={2}retcode,olcDatabase={1}{{ LDAP_BACKEND }},cn=config
|
9
|
-
changetype: add
|
10
|
-
objectClass: olcConfig
|
11
|
-
objectClass: olcRetcodeConfig
|
12
|
-
objectClass: olcOverlayConfig
|
13
|
-
objectClass: top
|
14
|
-
olcOverlay: retcode
|
15
|
-
olcRetcodeParent: ou=Retcodes,dc=example,dc=org
|
16
|
-
olcRetcodeInDir: TRUE
|
17
|
-
olcRetcodeSleep: 0
|
18
|
-
olcRetcodeItem: "cn=success" 0x00
|
19
|
-
olcRetcodeItem: "cn=success w/ delay" 0x00 sleeptime=2
|
20
|
-
olcRetcodeItem: "cn=operationsError" 0x01
|
21
|
-
olcRetcodeItem: "cn=protocolError" 0x02
|
22
|
-
olcRetcodeItem: "cn=timeLimitExceeded" 0x03 op=search
|
23
|
-
olcRetcodeItem: "cn=sizeLimitExceeded" 0x04 op=search
|
24
|
-
olcRetcodeItem: "cn=compareFalse" 0x05 op=compare
|
25
|
-
olcRetcodeItem: "cn=compareTrue" 0x06 op=compare
|
26
|
-
olcRetcodeItem: "cn=authMethodNotSupported" 0x07
|
27
|
-
olcRetcodeItem: "cn=strongAuthNotSupported" 0x07 text="same as authMethodNotSupported"
|
28
|
-
olcRetcodeItem: "cn=strongAuthRequired" 0x08
|
29
|
-
olcRetcodeItem: "cn=strongerAuthRequired" 0x08 text="same as strongAuthRequired"
|
30
|
-
olcRetcodeItem: "cn=referral" 0x0a text="LDAPv3" ref="ldap://:9019"
|
31
|
-
olcRetcodeItem: "cn=adminLimitExceeded" 0x0b text="LDAPv3"
|
32
|
-
olcRetcodeItem: "cn=unavailableCriticalExtension" 0x0c text="LDAPv3"
|
33
|
-
olcRetcodeItem: "cn=confidentialityRequired" 0x0d text="LDAPv3"
|
34
|
-
olcRetcodeItem: "cn=saslBindInProgress" 0x0e text="LDAPv3"
|
35
|
-
olcRetcodeItem: "cn=noSuchAttribute" 0x10
|
36
|
-
olcRetcodeItem: "cn=undefinedAttributeType" 0x11
|
37
|
-
olcRetcodeItem: "cn=inappropriateMatching" 0x12
|
38
|
-
olcRetcodeItem: "cn=constraintViolation" 0x13
|
39
|
-
olcRetcodeItem: "cn=attributeOrValueExists" 0x14
|
40
|
-
olcRetcodeItem: "cn=invalidAttributeSyntax" 0x15
|
41
|
-
olcRetcodeItem: "cn=noSuchObject" 0x20
|
42
|
-
olcRetcodeItem: "cn=aliasProblem" 0x21
|
43
|
-
olcRetcodeItem: "cn=invalidDNSyntax" 0x22
|
44
|
-
olcRetcodeItem: "cn=aliasDereferencingProblem" 0x24
|
45
|
-
olcRetcodeItem: "cn=proxyAuthzFailure" 0x2F text="LDAPv3 proxy authorization"
|
46
|
-
olcRetcodeItem: "cn=inappropriateAuthentication" 0x30
|
47
|
-
olcRetcodeItem: "cn=invalidCredentials" 0x31
|
48
|
-
olcRetcodeItem: "cn=insufficientAccessRights" 0x32
|
49
|
-
olcRetcodeItem: "cn=busy" 0x33
|
50
|
-
olcRetcodeItem: "cn=unavailable" 0x34
|
51
|
-
olcRetcodeItem: "cn=unwillingToPerform" 0x35
|
52
|
-
olcRetcodeItem: "cn=loopDetect" 0x36
|
53
|
-
olcRetcodeItem: "cn=namingViolation" 0x40
|
54
|
-
olcRetcodeItem: "cn=objectClassViolation" 0x41
|
55
|
-
olcRetcodeItem: "cn=notAllowedOnNonleaf" 0x42
|
56
|
-
olcRetcodeItem: "cn=notAllowedOnRDN" 0x43
|
57
|
-
olcRetcodeItem: "cn=entryAlreadyExists" 0x44
|
58
|
-
olcRetcodeItem: "cn=objectClassModsProhibited" 0x45
|
59
|
-
olcRetcodeItem: "cn=resultsTooLarge" 0x46 text="CLDAP"
|
60
|
-
olcRetcodeItem: "cn=affectsMultipleDSAs" 0x47 text="LDAPv3"
|
61
|
-
olcRetcodeItem: "cn=other" 0x50
|
62
|
-
olcRetcodeItem: "cn=cupResourcesExhausted" 0x71
|
63
|
-
olcRetcodeItem: "cn=cupSecurityViolation" 0x72
|
64
|
-
olcRetcodeItem: "cn=cupInvalidData" 0x73
|
65
|
-
olcRetcodeItem: "cn=cupUnsupportedScheme" 0x74
|
66
|
-
olcRetcodeItem: "cn=cupReloadRequired" 0x75
|
67
|
-
olcRetcodeItem: "cn=cancelled" 0x76
|
68
|
-
olcRetcodeItem: "cn=noSuchOperation" 0x77
|
69
|
-
olcRetcodeItem: "cn=tooLate" 0x78
|
70
|
-
olcRetcodeItem: "cn=cannotCancel" 0x79
|
71
|
-
olcRetcodeItem: "cn=syncRefreshRequired" 0x4100
|
72
|
-
olcRetcodeItem: "cn=noOperation" 0x410e
|
73
|
-
olcRetcodeItem: "cn=assertionFailed" 0x410f
|
74
|
-
olcRetcodeItem: "cn=noReferralsFound" 0x4110
|
75
|
-
olcRetcodeItem: "cn=cannotChain" 0x4111
|