jruby-ldap 0.0.1 → 0.0.2
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/.gitignore +4 -0
- data/Gemfile +4 -0
- data/History.txt +7 -0
- data/Rakefile +2 -30
- data/jruby-ldap.gemspec +19 -0
- data/lib/jruby-ldap.rb +7 -0
- data/lib/jruby-ldap/version.rb +5 -0
- data/lib/ldap.rb +46 -46
- data/lib/ldap/conn.rb +29 -6
- data/lib/ldap/mod.rb +4 -4
- data/test/setup.rb +2 -1
- metadata +77 -58
- data/test/username_and_password.rb +0 -2
data/.gitignore
ADDED
data/Gemfile
ADDED
data/History.txt
ADDED
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require 'rake'
|
2
1
|
require 'rake/testtask'
|
2
|
+
require 'bundler/gem_tasks'
|
3
3
|
|
4
|
-
task :default => [:test, :
|
4
|
+
task :default => [:test, :build]
|
5
5
|
|
6
6
|
desc "Run all tests"
|
7
7
|
task :test => [:test_all]
|
@@ -12,31 +12,3 @@ Rake::TestTask.new(:test_all) do |t|
|
|
12
12
|
t.libs.delete("lib") unless defined?(JRUBY_VERSION)
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
task :filelist do
|
17
|
-
puts FileList['pkg/**/*'].inspect
|
18
|
-
end
|
19
|
-
|
20
|
-
MANIFEST = FileList["lib/**/*.rb", "test/**/*.rb", "Rakefile", "LICENSE", "README"]
|
21
|
-
|
22
|
-
file "Manifest.txt" => :manifest
|
23
|
-
task :manifest do
|
24
|
-
File.open("Manifest.txt", "w") {|f| MANIFEST.each {|n| f << "#{n}\n"} }
|
25
|
-
end
|
26
|
-
|
27
|
-
Rake::Task['manifest'].invoke # Always regen manifest, so Hoe has up-to-date list of files
|
28
|
-
|
29
|
-
begin
|
30
|
-
require 'hoe'
|
31
|
-
Hoe.new("jruby-ldap", "0.0.1") do |p|
|
32
|
-
p.rubyforge_name = "jruby-extras"
|
33
|
-
p.url = "http://jruby-extras.rubyforge.org/jruby-ldap"
|
34
|
-
p.author = "Ola Bini"
|
35
|
-
p.email = "ola.bini@gmail.com"
|
36
|
-
p.summary = "Port of Ruby/LDAP to JRuby"
|
37
|
-
end.spec.dependencies.delete_if { |dep| dep.name == "hoe" }
|
38
|
-
rescue LoadError
|
39
|
-
puts "You really need Hoe installed to be able to package this gem"
|
40
|
-
rescue => e
|
41
|
-
puts "ignoring error while loading hoe: #{e.to_s}"
|
42
|
-
end
|
data/jruby-ldap.gemspec
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "jruby-ldap/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "jruby-ldap"
|
7
|
+
s.version = JRuby::LDAP::VERSION
|
8
|
+
s.authors = ["Ola Bini"]
|
9
|
+
s.email = ["ola.bini@gmail.com"]
|
10
|
+
s.homepage = "http://jruby-extras.rubyforge.org/jruby-ldap"
|
11
|
+
s.summary = "Port of Ruby/LDAP to JRuby"
|
12
|
+
s.description = "Port of Ruby/LDAP to JRuby"
|
13
|
+
s.rubyforge_project = "jruby-extras"
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
end
|
data/lib/jruby-ldap.rb
ADDED
data/lib/ldap.rb
CHANGED
@@ -3,51 +3,51 @@ require 'java'
|
|
3
3
|
module LDAP
|
4
4
|
def self.err2string(err)
|
5
5
|
case err||0
|
6
|
-
when -1
|
7
|
-
when 0
|
8
|
-
when 1
|
9
|
-
when 2
|
10
|
-
when 3
|
11
|
-
when 4
|
12
|
-
when 5
|
13
|
-
when 6
|
14
|
-
when 7
|
15
|
-
when 8
|
16
|
-
when 9
|
17
|
-
when 10
|
18
|
-
when 11
|
19
|
-
when 12
|
20
|
-
when 13
|
21
|
-
when 14
|
22
|
-
when 15
|
23
|
-
when 16
|
24
|
-
when 17
|
25
|
-
when 18
|
26
|
-
when 19
|
27
|
-
when 20
|
28
|
-
when 21
|
29
|
-
when 32
|
30
|
-
when 33
|
31
|
-
when 34
|
32
|
-
when 35
|
33
|
-
when 36
|
34
|
-
when 47
|
35
|
-
when 48
|
36
|
-
when 49
|
37
|
-
when 50
|
38
|
-
when 51
|
39
|
-
when 52
|
40
|
-
when 53
|
41
|
-
when 54
|
42
|
-
when 64
|
43
|
-
when 65
|
44
|
-
when 66
|
45
|
-
when 67
|
46
|
-
when 68
|
47
|
-
when 69
|
48
|
-
when 70
|
49
|
-
when 71
|
50
|
-
when 80
|
6
|
+
when -1 then "Can't contact LDAP server"
|
7
|
+
when 0 then "Success"
|
8
|
+
when 1 then "Operations error"
|
9
|
+
when 2 then "Protocol error"
|
10
|
+
when 3 then "Time limit exceeded"
|
11
|
+
when 4 then "Size limit exceeded"
|
12
|
+
when 5 then "Compare False"
|
13
|
+
when 6 then "Compare True"
|
14
|
+
when 7 then "Authentication method not supported"
|
15
|
+
when 8 then "Strong(er) authentication required"
|
16
|
+
when 9 then "Partial results and referral received"
|
17
|
+
when 10 then "Referral"
|
18
|
+
when 11 then "Administrative limit exceeded"
|
19
|
+
when 12 then "Critical extension is unavailable"
|
20
|
+
when 13 then "Confidentiality required"
|
21
|
+
when 14 then "SASL bind in progress"
|
22
|
+
when 15 then "Unknown error"
|
23
|
+
when 16 then "No such attribute"
|
24
|
+
when 17 then "Undefined attribute type"
|
25
|
+
when 18 then "Inappropriate matching"
|
26
|
+
when 19 then "Constraint violation"
|
27
|
+
when 20 then "Type or value exists"
|
28
|
+
when 21 then "Invalid syntax"
|
29
|
+
when 32 then "No such object"
|
30
|
+
when 33 then "Alias problem"
|
31
|
+
when 34 then "Invalid DN syntax"
|
32
|
+
when 35 then "Entry is a leaf"
|
33
|
+
when 36 then "Alias dereferencing problem"
|
34
|
+
when 47 then "Proxy Authorization Failure"
|
35
|
+
when 48 then "Inappropriate authentication"
|
36
|
+
when 49 then "Invalid credentials"
|
37
|
+
when 50 then "Insufficient access"
|
38
|
+
when 51 then "Server is busy"
|
39
|
+
when 52 then "Server is unavailable"
|
40
|
+
when 53 then "Server is unwilling to perform"
|
41
|
+
when 54 then "Loop detected"
|
42
|
+
when 64 then "Naming violation"
|
43
|
+
when 65 then "Object class violation"
|
44
|
+
when 66 then "Operation not allowed on non-leaf"
|
45
|
+
when 67 then "Operation not allowed on RDN"
|
46
|
+
when 68 then "Already exists"
|
47
|
+
when 69 then "Cannot modify object class"
|
48
|
+
when 70 then "Results too large"
|
49
|
+
when 71 then "Operation affects multiple DSAs"
|
50
|
+
when 80 then "Internal (implementation specific) error"
|
51
51
|
else "Unknown error"
|
52
52
|
end
|
53
53
|
end
|
@@ -70,7 +70,7 @@ module LDAP
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def self.configuration(attrs = { })
|
73
|
-
@environment.
|
73
|
+
@environment.merge attrs
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
data/lib/ldap/conn.rb
CHANGED
@@ -1,9 +1,5 @@
|
|
1
1
|
module LDAP
|
2
2
|
module ConnImplementation
|
3
|
-
def compare(*args)
|
4
|
-
raise "NOT IMPLEMENTED"
|
5
|
-
end
|
6
|
-
|
7
3
|
def controls(*args)
|
8
4
|
raise "NOT IMPLEMENTED"
|
9
5
|
end
|
@@ -12,8 +8,35 @@ module LDAP
|
|
12
8
|
raise "NOT IMPLEMENTED"
|
13
9
|
end
|
14
10
|
|
15
|
-
|
16
|
-
|
11
|
+
# Modify the RDN of the entry with DN, +dn+, giving it the new RDN,
|
12
|
+
# +new_rdn+. If +delete_old_rdn+ is *true*, the old RDN value will be deleted
|
13
|
+
# from the entry.
|
14
|
+
def modrdn(dn, new_rdn, delete_old_rdn)
|
15
|
+
begin
|
16
|
+
if delete_old_rdn
|
17
|
+
@context.rename(dn, new_rdn)
|
18
|
+
else
|
19
|
+
obj = @context.lookup(dn)
|
20
|
+
@context.bind(new_rdn, obj)
|
21
|
+
end
|
22
|
+
@err = 0
|
23
|
+
rescue javax.naming.NameAlreadyBoundException => e
|
24
|
+
@err = 68
|
25
|
+
rescue javax.naming.InvalidNameException => e
|
26
|
+
@err = 34
|
27
|
+
rescue javax.naming.NoPermissionException => e
|
28
|
+
@err = 50
|
29
|
+
rescue javax.naming.directory.SchemaViolationException => e
|
30
|
+
@err = 65
|
31
|
+
rescue javax.naming.NamingException => e
|
32
|
+
@err = 21
|
33
|
+
rescue javax.naming.NoPermissionException => e
|
34
|
+
@err = 50
|
35
|
+
rescue javax.naming.NamingException => e
|
36
|
+
@err = -1
|
37
|
+
end
|
38
|
+
raise LDAP::ResultError.wrap(LDAP::err2string(@err), e) if @err != 0
|
39
|
+
self
|
17
40
|
end
|
18
41
|
|
19
42
|
def perror(*args)
|
data/lib/ldap/mod.rb
CHANGED
@@ -26,9 +26,9 @@ module LDAP
|
|
26
26
|
|
27
27
|
def ruby_mod_to_java(mod_op)
|
28
28
|
case (mod_op&~LDAP::LDAP_MOD_BVALUES)
|
29
|
-
when LDAP::LDAP_MOD_ADD
|
30
|
-
when LDAP::LDAP_MOD_REPLACE
|
31
|
-
when LDAP::LDAP_MOD_DELETE
|
29
|
+
when LDAP::LDAP_MOD_ADD then DirContext::ADD_ATTRIBUTE
|
30
|
+
when LDAP::LDAP_MOD_REPLACE then DirContext::REPLACE_ATTRIBUTE
|
31
|
+
when LDAP::LDAP_MOD_DELETE then DirContext::REMOVE_ATTRIBUTE
|
32
32
|
else raise LDAP::Error, "can't handle operation #{mod_op}"
|
33
33
|
end
|
34
34
|
end
|
@@ -59,7 +59,7 @@ module LDAP
|
|
59
59
|
def to_java_attribute
|
60
60
|
v = BasicAttribute.new(self.mod_type)
|
61
61
|
binary = mod_op & LDAP::LDAP_MOD_BVALUES
|
62
|
-
if binary
|
62
|
+
if binary != 0
|
63
63
|
self.mod_vals.each do |val|
|
64
64
|
v.add(val.to_java_bytes)
|
65
65
|
end
|
data/test/setup.rb
CHANGED
metadata
CHANGED
@@ -1,64 +1,83 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
2
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
3
|
-
requirements:
|
4
|
-
- - '>'
|
5
|
-
- !ruby/object:Gem::Version
|
6
|
-
version: 0.0.0
|
7
|
-
version:
|
8
|
-
email: ola.bini@gmail.com
|
9
|
-
cert_chain:
|
10
|
-
summary: Port of Ruby/LDAP to JRuby
|
11
|
-
post_install_message:
|
12
|
-
homepage: http://jruby-extras.rubyforge.org/jruby-ldap
|
13
|
-
extra_rdoc_files: []
|
14
|
-
signing_key:
|
1
|
+
--- !ruby/object:Gem::Specification
|
15
2
|
name: jruby-ldap
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.2
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Ola Bini
|
20
9
|
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2012-03-12 00:00:00 Z
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Port of Ruby/LDAP to JRuby
|
17
|
+
email:
|
18
|
+
- ola.bini@gmail.com
|
21
19
|
executables: []
|
22
|
-
|
23
|
-
default_executable:
|
24
|
-
files:
|
25
|
-
- lib/ldap.rb
|
26
|
-
- lib/ldap/conn.rb
|
27
|
-
- lib/ldap/constants.rb
|
28
|
-
- lib/ldap/control.rb
|
29
|
-
- lib/ldap/entry.rb
|
30
|
-
- lib/ldap/error.rb
|
31
|
-
- lib/ldap/ldif.rb
|
32
|
-
- lib/ldap/mod.rb
|
33
|
-
- lib/ldap/schema.rb
|
34
|
-
- test/setup.rb
|
35
|
-
- test/test_add.rb
|
36
|
-
- test/test_connection.rb
|
37
|
-
- test/test_delete.rb
|
38
|
-
- test/test_search.rb
|
39
|
-
- test/test_ssl.rb
|
40
|
-
- test/username_and_password.rb
|
41
|
-
- Rakefile
|
42
|
-
- LICENSE
|
43
|
-
- README
|
44
|
-
specification_version: 1
|
20
|
+
|
45
21
|
extensions: []
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
22
|
+
|
23
|
+
extra_rdoc_files: []
|
24
|
+
|
25
|
+
files:
|
26
|
+
- .gitignore
|
27
|
+
- Gemfile
|
28
|
+
- History.txt
|
29
|
+
- LICENSE
|
30
|
+
- README
|
31
|
+
- Rakefile
|
32
|
+
- jruby-ldap.gemspec
|
33
|
+
- lib/jruby-ldap.rb
|
34
|
+
- lib/jruby-ldap/version.rb
|
35
|
+
- lib/ldap.rb
|
36
|
+
- lib/ldap/conn.rb
|
37
|
+
- lib/ldap/constants.rb
|
38
|
+
- lib/ldap/control.rb
|
39
|
+
- lib/ldap/entry.rb
|
40
|
+
- lib/ldap/error.rb
|
41
|
+
- lib/ldap/ldif.rb
|
42
|
+
- lib/ldap/mod.rb
|
43
|
+
- lib/ldap/schema.rb
|
44
|
+
- test/setup.rb
|
45
|
+
- test/test_add.rb
|
46
|
+
- test/test_connection.rb
|
47
|
+
- test/test_delete.rb
|
48
|
+
- test/test_search.rb
|
49
|
+
- test/test_ssl.rb
|
50
|
+
homepage: http://jruby-extras.rubyforge.org/jruby-ldap
|
51
|
+
licenses: []
|
52
|
+
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
|
52
56
|
require_paths:
|
53
|
-
- lib
|
54
|
-
|
55
|
-
|
57
|
+
- lib
|
58
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: "0"
|
64
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: "0"
|
70
|
+
requirements: []
|
71
|
+
|
72
|
+
rubyforge_project: jruby-extras
|
73
|
+
rubygems_version: 1.8.15
|
74
|
+
signing_key:
|
75
|
+
specification_version: 3
|
76
|
+
summary: Port of Ruby/LDAP to JRuby
|
56
77
|
test_files:
|
57
|
-
- test/
|
58
|
-
- test/
|
59
|
-
- test/
|
60
|
-
- test/
|
61
|
-
- test/
|
62
|
-
|
63
|
-
dependencies: []
|
64
|
-
has_rdoc: true
|
78
|
+
- test/setup.rb
|
79
|
+
- test/test_add.rb
|
80
|
+
- test/test_connection.rb
|
81
|
+
- test/test_delete.rb
|
82
|
+
- test/test_search.rb
|
83
|
+
- test/test_ssl.rb
|