aker 3.0.2 → 3.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +7 -0
- data/lib/aker/ldap/authority.rb +12 -2
- data/lib/aker/version.rb +1 -1
- data/spec/aker/ldap/authority_spec.rb +9 -1
- metadata +6 -8
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
Aker History
|
2
2
|
============
|
3
3
|
|
4
|
+
3.0.3
|
5
|
+
-----
|
6
|
+
- Added: search_domain configuration option to LDAP authority. (#15)
|
7
|
+
This new option is mandatory; the lack of this option in prior
|
8
|
+
versions of the authority meant that they would not work with LDAP
|
9
|
+
servers other than Northwestern's.
|
10
|
+
|
4
11
|
3.0.2
|
5
12
|
-----
|
6
13
|
- Added missing LICENSE file. Aker is made available under the MIT
|
data/lib/aker/ldap/authority.rb
CHANGED
@@ -82,6 +82,10 @@ module Aker::Ldap
|
|
82
82
|
# @option config [String] :server The hostname for the LDAP server
|
83
83
|
# (required)
|
84
84
|
#
|
85
|
+
# @option config [String] :search_domain The search base to use
|
86
|
+
# when looking up users. E.g., `"dc=example,dc=org"`.
|
87
|
+
# (required)
|
88
|
+
#
|
85
89
|
# @option config [Integer] :port (636) The port to use to connect to the
|
86
90
|
# LDAP server
|
87
91
|
#
|
@@ -161,6 +165,12 @@ module Aker::Ldap
|
|
161
165
|
@config[:use_tls].nil? ? true : @config[:use_tls]
|
162
166
|
end
|
163
167
|
|
168
|
+
##
|
169
|
+
# The search domain to use when finding user records.
|
170
|
+
def search_domain
|
171
|
+
@config[:search_domain]
|
172
|
+
end
|
173
|
+
|
164
174
|
##
|
165
175
|
# The mapping between attributes from the LDAP server and
|
166
176
|
# {Aker::User} attributes. This mapping is used in two ways:
|
@@ -351,8 +361,7 @@ module Aker::Ldap
|
|
351
361
|
def find_by_criteria(ldap, *criteria)
|
352
362
|
filter = criteria.collect { |c| create_criteria_filter(c) }.inject { |a, f| a | f }
|
353
363
|
return [] unless filter
|
354
|
-
base
|
355
|
-
ldap.search(:filter => filter, :base => base)
|
364
|
+
ldap.search(:filter => filter, :base => search_domain) || []
|
356
365
|
end
|
357
366
|
|
358
367
|
def one_value(ldap_entry, key)
|
@@ -362,6 +371,7 @@ module Aker::Ldap
|
|
362
371
|
|
363
372
|
def validate_config!
|
364
373
|
self.server or raise "The server parameter is required for ldap."
|
374
|
+
self.search_domain or raise 'The search_domain parameter is required for ldap.'
|
365
375
|
if self.user.nil? ^ self.password.nil?
|
366
376
|
raise "For ldap, both user and password are required if one is set."
|
367
377
|
end
|
data/lib/aker/version.rb
CHANGED
@@ -23,7 +23,10 @@ module Aker::Ldap
|
|
23
23
|
|
24
24
|
# Minimal valid set
|
25
25
|
let(:params) {
|
26
|
-
{
|
26
|
+
{
|
27
|
+
:server => '127.0.0.1',
|
28
|
+
:search_domain => 'dc=northwestern,dc=edu'
|
29
|
+
}
|
27
30
|
}
|
28
31
|
|
29
32
|
def actual
|
@@ -60,6 +63,11 @@ module Aker::Ldap
|
|
60
63
|
lambda { actual }.should raise_error("The server parameter is required for ldap.")
|
61
64
|
end
|
62
65
|
|
66
|
+
it 'requires the search domain' do
|
67
|
+
params[:search_domain] = nil
|
68
|
+
lambda { actual }.should raise_error('The search_domain parameter is required for ldap.')
|
69
|
+
end
|
70
|
+
|
63
71
|
it "does not require a user name" do
|
64
72
|
params[:user] = nil
|
65
73
|
params[:password] = nil
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 1
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 3.0.
|
9
|
+
- 3
|
10
|
+
version: 3.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Rhett Sutphin
|
@@ -17,8 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-10-
|
21
|
-
default_executable:
|
20
|
+
date: 2011-10-31 00:00:00 Z
|
22
21
|
dependencies:
|
23
22
|
- !ruby/object:Gem::Dependency
|
24
23
|
name: rubytree
|
@@ -240,7 +239,6 @@ files:
|
|
240
239
|
- spec/matchers.rb
|
241
240
|
- spec/mock_builder.rb
|
242
241
|
- spec/spec_helper.rb
|
243
|
-
has_rdoc: true
|
244
242
|
homepage: https://github.com/NUBIC/aker
|
245
243
|
licenses: []
|
246
244
|
|
@@ -270,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
270
268
|
requirements: []
|
271
269
|
|
272
270
|
rubyforge_project:
|
273
|
-
rubygems_version: 1.
|
271
|
+
rubygems_version: 1.8.10
|
274
272
|
signing_key:
|
275
273
|
specification_version: 3
|
276
274
|
summary: A flexible authentication and authorization framework for Rack applications.
|