devise_ldap_authenticatable 0.4.10 → 0.5.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.
- data/.gitignore +8 -0
- data/Gemfile +12 -0
- data/Rakefile +1 -38
- data/devise_ldap_authenticatable.gemspec +16 -127
- data/lib/devise_ldap_authenticatable/strategy.rb +3 -16
- data/lib/devise_ldap_authenticatable/version.rb +2 -3
- data/test/ldap/openldap-data/run/.gitkeep +0 -0
- data/test/rails_app/config/ldap_with_boolean_ssl.yml +22 -0
- metadata +16 -14
- data/VERSION +0 -1
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
CHANGED
@@ -5,25 +5,6 @@ require 'rake/rdoctask'
|
|
5
5
|
desc 'Default: run unit tests.'
|
6
6
|
task :default => :test
|
7
7
|
|
8
|
-
desc 'Test the devise_imapable plugin.'
|
9
|
-
Rake::TestTask.new(:test) do |t|
|
10
|
-
# t.libs << 'lib'
|
11
|
-
# t.libs << 'test'
|
12
|
-
# t.pattern = 'test/**/*_test.rb'
|
13
|
-
# t.verbose = true
|
14
|
-
puts <<-eof
|
15
|
-
|
16
|
-
*** NOTICE ***
|
17
|
-
|
18
|
-
All tests are done in the sample Rails app.
|
19
|
-
|
20
|
-
Please go to test/rails_app and run the tests there.
|
21
|
-
|
22
|
-
Make sure to bundle install and rake db:migrate
|
23
|
-
|
24
|
-
eof
|
25
|
-
end
|
26
|
-
|
27
8
|
desc 'Generate documentation for the devise_ldap_authenticatable plugin.'
|
28
9
|
Rake::RDocTask.new(:rdoc) do |rdoc|
|
29
10
|
rdoc.rdoc_dir = 'rdoc'
|
@@ -31,22 +12,4 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
|
|
31
12
|
rdoc.options << '--line-numbers' << '--inline-source'
|
32
13
|
rdoc.rdoc_files.include('README')
|
33
14
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
34
|
-
end
|
35
|
-
|
36
|
-
|
37
|
-
begin
|
38
|
-
require 'jeweler'
|
39
|
-
Jeweler::Tasks.new do |gemspec|
|
40
|
-
gemspec.name = "devise_ldap_authenticatable"
|
41
|
-
gemspec.summary = "LDAP authentication module for Devise"
|
42
|
-
gemspec.description = "LDAP authentication module for Devise"
|
43
|
-
gemspec.email = "curtis.schiewek@gmail.com"
|
44
|
-
gemspec.homepage = "http://github.com/cschiewek/devise_ldap_authenticatable"
|
45
|
-
gemspec.authors = ["Curtis Schiewek", "Daniel McNevin"]
|
46
|
-
gemspec.add_runtime_dependency "devise", "~> 1.4.0"
|
47
|
-
gemspec.add_runtime_dependency "net-ldap", "~> 0.2.2"
|
48
|
-
end
|
49
|
-
Jeweler::GemcutterTasks.new
|
50
|
-
rescue LoadError
|
51
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
52
|
-
end
|
15
|
+
end
|
@@ -1,133 +1,22 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "devise_ldap_authenticatable/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
6
|
+
s.name = 'devise_ldap_authenticatable'
|
7
|
+
s.version = DeviseLdapAuthenticatable::VERSION.dup
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.summary = 'Devise extension to allow authentication via LDAP'
|
10
|
+
s.email = 'curtis.schiewek@gmail.com'
|
11
|
+
s.homepage = 'https://github.com/cschiewek/devise_ldap_authenticatable'
|
12
|
+
s.description = s.summary
|
13
|
+
s.authors = ['Curtis Schiewek', 'Daniel McNevin', 'Steven Xu']
|
9
14
|
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.description = %q{LDAP authentication module for Devise}
|
14
|
-
s.email = %q{curtis.schiewek@gmail.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"README.md"
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
"MIT-LICENSE",
|
20
|
-
"README.md",
|
21
|
-
"Rakefile",
|
22
|
-
"VERSION",
|
23
|
-
"devise_ldap_authenticatable.gemspec",
|
24
|
-
"lib/devise_ldap_authenticatable.rb",
|
25
|
-
"lib/devise_ldap_authenticatable/exception.rb",
|
26
|
-
"lib/devise_ldap_authenticatable/ldap_adapter.rb",
|
27
|
-
"lib/devise_ldap_authenticatable/logger.rb",
|
28
|
-
"lib/devise_ldap_authenticatable/model.rb",
|
29
|
-
"lib/devise_ldap_authenticatable/routes.rb",
|
30
|
-
"lib/devise_ldap_authenticatable/schema.rb",
|
31
|
-
"lib/devise_ldap_authenticatable/strategy.rb",
|
32
|
-
"lib/devise_ldap_authenticatable/version.rb",
|
33
|
-
"lib/generators/devise_ldap_authenticatable/install_generator.rb",
|
34
|
-
"lib/generators/devise_ldap_authenticatable/templates/ldap.yml",
|
35
|
-
"rails/init.rb",
|
36
|
-
"test/devise_ldap_authenticatable_test.rb",
|
37
|
-
"test/ldap/base.ldif",
|
38
|
-
"test/ldap/clear.ldif",
|
39
|
-
"test/ldap/local.schema",
|
40
|
-
"test/ldap/run-server.sh",
|
41
|
-
"test/ldap/server.pem",
|
42
|
-
"test/ldap/slapd-ssl-test.conf",
|
43
|
-
"test/ldap/slapd-test.conf",
|
44
|
-
"test/rails_app/Gemfile",
|
45
|
-
"test/rails_app/Gemfile.lock",
|
46
|
-
"test/rails_app/Rakefile",
|
47
|
-
"test/rails_app/app/controllers/application_controller.rb",
|
48
|
-
"test/rails_app/app/controllers/posts_controller.rb",
|
49
|
-
"test/rails_app/app/helpers/application_helper.rb",
|
50
|
-
"test/rails_app/app/helpers/posts_helper.rb",
|
51
|
-
"test/rails_app/app/models/post.rb",
|
52
|
-
"test/rails_app/app/models/user.rb",
|
53
|
-
"test/rails_app/app/views/layouts/application.html.erb",
|
54
|
-
"test/rails_app/app/views/posts/index.html.erb",
|
55
|
-
"test/rails_app/config.ru",
|
56
|
-
"test/rails_app/config/application.rb",
|
57
|
-
"test/rails_app/config/boot.rb",
|
58
|
-
"test/rails_app/config/cucumber.yml",
|
59
|
-
"test/rails_app/config/database.yml",
|
60
|
-
"test/rails_app/config/environment.rb",
|
61
|
-
"test/rails_app/config/environments/development.rb",
|
62
|
-
"test/rails_app/config/environments/production.rb",
|
63
|
-
"test/rails_app/config/environments/test.rb",
|
64
|
-
"test/rails_app/config/initializers/backtrace_silencers.rb",
|
65
|
-
"test/rails_app/config/initializers/devise.rb",
|
66
|
-
"test/rails_app/config/initializers/inflections.rb",
|
67
|
-
"test/rails_app/config/initializers/mime_types.rb",
|
68
|
-
"test/rails_app/config/initializers/secret_token.rb",
|
69
|
-
"test/rails_app/config/initializers/session_store.rb",
|
70
|
-
"test/rails_app/config/ldap.yml",
|
71
|
-
"test/rails_app/config/ldap_with_erb.yml",
|
72
|
-
"test/rails_app/config/ldap_with_uid.yml",
|
73
|
-
"test/rails_app/config/locales/devise.en.yml",
|
74
|
-
"test/rails_app/config/locales/en.yml",
|
75
|
-
"test/rails_app/config/routes.rb",
|
76
|
-
"test/rails_app/config/ssl_ldap.yml",
|
77
|
-
"test/rails_app/config/ssl_ldap_with_erb.yml",
|
78
|
-
"test/rails_app/config/ssl_ldap_with_uid.yml",
|
79
|
-
"test/rails_app/db/migrate/20100708120302_create_posts.rb",
|
80
|
-
"test/rails_app/db/migrate/20100708120448_devise_create_users.rb",
|
81
|
-
"test/rails_app/db/schema.rb",
|
82
|
-
"test/rails_app/db/seeds.rb",
|
83
|
-
"test/rails_app/features/manage_logins.feature",
|
84
|
-
"test/rails_app/features/step_definitions/login_steps.rb",
|
85
|
-
"test/rails_app/features/step_definitions/web_steps.rb",
|
86
|
-
"test/rails_app/features/support/env.rb",
|
87
|
-
"test/rails_app/features/support/paths.rb",
|
88
|
-
"test/rails_app/lib/tasks/.gitkeep",
|
89
|
-
"test/rails_app/lib/tasks/cucumber.rake",
|
90
|
-
"test/rails_app/public/404.html",
|
91
|
-
"test/rails_app/public/422.html",
|
92
|
-
"test/rails_app/public/500.html",
|
93
|
-
"test/rails_app/public/images/rails.png",
|
94
|
-
"test/rails_app/public/javascripts/application.js",
|
95
|
-
"test/rails_app/public/javascripts/controls.js",
|
96
|
-
"test/rails_app/public/javascripts/dragdrop.js",
|
97
|
-
"test/rails_app/public/javascripts/effects.js",
|
98
|
-
"test/rails_app/public/javascripts/prototype.js",
|
99
|
-
"test/rails_app/public/javascripts/rails.js",
|
100
|
-
"test/rails_app/public/stylesheets/.gitkeep",
|
101
|
-
"test/rails_app/script/cucumber",
|
102
|
-
"test/rails_app/script/rails",
|
103
|
-
"test/rails_app/test/factories/users.rb",
|
104
|
-
"test/rails_app/test/functional/posts_controller_test.rb",
|
105
|
-
"test/rails_app/test/performance/browsing_test.rb",
|
106
|
-
"test/rails_app/test/test_helper.rb",
|
107
|
-
"test/rails_app/test/unit/helpers/posts_helper_test.rb",
|
108
|
-
"test/rails_app/test/unit/post_test.rb",
|
109
|
-
"test/rails_app/test/unit/user_test.rb",
|
110
|
-
"test/test_helper.rb"
|
111
|
-
]
|
112
|
-
s.homepage = %q{http://github.com/cschiewek/devise_ldap_authenticatable}
|
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) }
|
113
18
|
s.require_paths = ["lib"]
|
114
|
-
s.rubygems_version = %q{1.3.7}
|
115
|
-
s.summary = %q{LDAP authentication module for Devise}
|
116
|
-
|
117
|
-
if s.respond_to? :specification_version then
|
118
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
119
|
-
s.specification_version = 3
|
120
|
-
|
121
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
122
|
-
s.add_runtime_dependency(%q<devise>, ["~> 1.4.0"])
|
123
|
-
s.add_runtime_dependency(%q<net-ldap>, ["~> 0.2.2"])
|
124
|
-
else
|
125
|
-
s.add_dependency(%q<devise>, ["~> 1.4.0"])
|
126
|
-
s.add_dependency(%q<net-ldap>, ["~> 0.2.2"])
|
127
|
-
end
|
128
|
-
else
|
129
|
-
s.add_dependency(%q<devise>, ["~> 1.4.0"])
|
130
|
-
s.add_dependency(%q<net-ldap>, ["~> 0.2.2"])
|
131
|
-
end
|
132
|
-
end
|
133
19
|
|
20
|
+
s.add_dependency('devise', '~> 1.5.0')
|
21
|
+
s.add_dependency('net-ldap', '~> 0.2.2')
|
22
|
+
end
|
@@ -5,30 +5,17 @@ module Devise
|
|
5
5
|
# Strategy for signing in a user based on his login and password using LDAP.
|
6
6
|
# Redirects to sign_in page if it's not authenticated
|
7
7
|
class LdapAuthenticatable < Authenticatable
|
8
|
-
def valid?
|
9
|
-
valid_controller? && valid_params? && mapping.to.respond_to?(:authenticate_with_ldap)
|
10
|
-
end
|
11
|
-
|
12
8
|
# Authenticate a user based on login and password params, returning to warden
|
13
9
|
# success and the authenticated user if everything is okay. Otherwise redirect
|
14
10
|
# to sign in page.
|
15
11
|
def authenticate!
|
16
|
-
|
12
|
+
resource = valid_password? && mapping.to.authenticate_with_ldap(params[scope])
|
13
|
+
if validate(resource)
|
17
14
|
success!(resource)
|
18
15
|
else
|
19
16
|
fail(:invalid)
|
20
17
|
end
|
21
|
-
|
22
|
-
|
23
|
-
protected
|
24
|
-
|
25
|
-
def valid_controller?
|
26
|
-
params[:controller] == mapping.controllers[:sessions]
|
27
|
-
end
|
28
|
-
|
29
|
-
def valid_params?
|
30
|
-
params[scope] && params[scope][:password].present?
|
31
|
-
end
|
18
|
+
end
|
32
19
|
end
|
33
20
|
end
|
34
21
|
end
|
File without changes
|
@@ -0,0 +1,22 @@
|
|
1
|
+
authorizations: &AUTHORIZATIONS
|
2
|
+
## Authorization
|
3
|
+
group_base: ou=groups,dc=test,dc=com
|
4
|
+
required_groups:
|
5
|
+
- cn=admins,ou=groups,dc=test,dc=com
|
6
|
+
- ["authorizationRole", "cn=users,ou=groups,dc=test,dc=com"]
|
7
|
+
require_attribute:
|
8
|
+
objectClass: inetOrgPerson
|
9
|
+
authorizationRole: blogAdmin
|
10
|
+
|
11
|
+
test: &TEST
|
12
|
+
host: localhost
|
13
|
+
port: 3389
|
14
|
+
attribute: cn
|
15
|
+
base: ou=people,dc=test,dc=com
|
16
|
+
admin_user: cn=admin,dc=test,dc=com
|
17
|
+
admin_password: secret
|
18
|
+
ssl: true
|
19
|
+
<<: *AUTHORIZATIONS
|
20
|
+
|
21
|
+
development:
|
22
|
+
<<: *TEST
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_ldap_authenticatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,22 +11,22 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2011-
|
14
|
+
date: 2011-11-25 00:00:00.000000000Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: devise
|
18
|
-
requirement: &
|
18
|
+
requirement: &13886720 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 1.
|
23
|
+
version: 1.5.0
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *13886720
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: net-ldap
|
29
|
-
requirement: &
|
29
|
+
requirement: &13884260 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
@@ -34,18 +34,18 @@ dependencies:
|
|
34
34
|
version: 0.2.2
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
38
|
-
description:
|
37
|
+
version_requirements: *13884260
|
38
|
+
description: Devise extension to allow authentication via LDAP
|
39
39
|
email: curtis.schiewek@gmail.com
|
40
40
|
executables: []
|
41
41
|
extensions: []
|
42
|
-
extra_rdoc_files:
|
43
|
-
- README.md
|
42
|
+
extra_rdoc_files: []
|
44
43
|
files:
|
44
|
+
- .gitignore
|
45
|
+
- Gemfile
|
45
46
|
- MIT-LICENSE
|
46
47
|
- README.md
|
47
48
|
- Rakefile
|
48
|
-
- VERSION
|
49
49
|
- devise_ldap_authenticatable.gemspec
|
50
50
|
- lib/devise_ldap_authenticatable.rb
|
51
51
|
- lib/devise_ldap_authenticatable/exception.rb
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- test/ldap/base.ldif
|
64
64
|
- test/ldap/clear.ldif
|
65
65
|
- test/ldap/local.schema
|
66
|
+
- test/ldap/openldap-data/run/.gitkeep
|
66
67
|
- test/ldap/run-server.sh
|
67
68
|
- test/ldap/server.pem
|
68
69
|
- test/ldap/slapd-ssl-test.conf
|
@@ -94,6 +95,7 @@ files:
|
|
94
95
|
- test/rails_app/config/initializers/secret_token.rb
|
95
96
|
- test/rails_app/config/initializers/session_store.rb
|
96
97
|
- test/rails_app/config/ldap.yml
|
98
|
+
- test/rails_app/config/ldap_with_boolean_ssl.yml
|
97
99
|
- test/rails_app/config/ldap_with_erb.yml
|
98
100
|
- test/rails_app/config/ldap_with_uid.yml
|
99
101
|
- test/rails_app/config/locales/devise.en.yml
|
@@ -134,7 +136,7 @@ files:
|
|
134
136
|
- test/rails_app/test/unit/post_test.rb
|
135
137
|
- test/rails_app/test/unit/user_test.rb
|
136
138
|
- test/test_helper.rb
|
137
|
-
homepage:
|
139
|
+
homepage: https://github.com/cschiewek/devise_ldap_authenticatable
|
138
140
|
licenses: []
|
139
141
|
post_install_message:
|
140
142
|
rdoc_options: []
|
@@ -154,8 +156,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
156
|
version: '0'
|
155
157
|
requirements: []
|
156
158
|
rubyforge_project:
|
157
|
-
rubygems_version: 1.8.
|
159
|
+
rubygems_version: 1.8.11
|
158
160
|
signing_key:
|
159
161
|
specification_version: 3
|
160
|
-
summary:
|
162
|
+
summary: Devise extension to allow authentication via LDAP
|
161
163
|
test_files: []
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.4.10
|