omniauth-pam 1.0.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 +4 -0
- data/Gemfile +3 -0
- data/README.md +19 -0
- data/Rakefile +1 -0
- data/lib/omniauth-pam.rb +6 -0
- data/lib/omniauth-pam/version.rb +5 -0
- data/lib/omniauth/stategies/pam.rb +32 -0
- data/omniauth-pam.gemspec +23 -0
- metadata +103 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# OmniAuth PAM
|
2
|
+
|
3
|
+
Allows you to authenticate against PAM using OmniAuth.
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
use OmniAuth:Strategies::PAM
|
8
|
+
|
9
|
+
There are no configuration options. It's been tested under Debian 6.0 and Ruby 1.9.3-p0, but there's no reason why it won't work anywhere which doesn't have PAM correctly configured.
|
10
|
+
|
11
|
+
Then navigate to '/auth/pam'.
|
12
|
+
|
13
|
+
On Debian/Ubuntu you will need the `libpam0g-dev` package to compile the [rpam](https://github.com/canweriotnow/rpam-ruby19) gem.Others, I don't know.
|
14
|
+
|
15
|
+
This strategy only supports Ruby 1.9. [Read here about 1.8 support](http://nickcharlton.net/post/pam-for-omniauth).
|
16
|
+
|
17
|
+
## Author / License
|
18
|
+
|
19
|
+
Copyright Nick Charlton 2012. Licensed under the MIT license.
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/lib/omniauth-pam.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
module OmniAuth
|
2
|
+
module Strategies
|
3
|
+
class PAM
|
4
|
+
include OmniAuth::Strategy
|
5
|
+
|
6
|
+
option :fields, [:username]
|
7
|
+
option :uid_field, :username
|
8
|
+
|
9
|
+
def request_phase
|
10
|
+
OmniAuth::Form.build(
|
11
|
+
:title => (options[:title] || "Authenticate"),
|
12
|
+
:url => callback_path
|
13
|
+
) do |field|
|
14
|
+
field.text_field 'Username', 'username'
|
15
|
+
field.password_field 'Password', 'password'
|
16
|
+
end.to_response
|
17
|
+
end
|
18
|
+
|
19
|
+
def callback_phase
|
20
|
+
unless Rpam.auth(request['username'], request['password'])
|
21
|
+
return fail!(:invalid_credentials)
|
22
|
+
end
|
23
|
+
|
24
|
+
super
|
25
|
+
end
|
26
|
+
|
27
|
+
uid do
|
28
|
+
request['username']
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "omniauth-pam/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "omniauth-pam"
|
7
|
+
s.version = OmniAuth::PAM::VERSION
|
8
|
+
s.authors = ["Nick Charlton"]
|
9
|
+
s.email = ["hello@nickcharlton.net"]
|
10
|
+
s.homepage = "https://github.com/nickcharlton/omniauth-pam"
|
11
|
+
s.summary = %q{A PAM strategy for OmniAuth.}
|
12
|
+
s.description = %q{A PAM strategy for OmniAuth.}
|
13
|
+
|
14
|
+
s.rubyforge_project = "omniauth-pam"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_runtime_dependency "omniauth", '~> 1.0'
|
22
|
+
s.add_runtime_dependency "rpam-ruby19"
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: omniauth-pam
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Nick Charlton
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2012-01-15 00:00:00 +00:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: omniauth
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 15
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 0
|
33
|
+
version: "1.0"
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rpam-ruby19
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
48
|
+
type: :runtime
|
49
|
+
version_requirements: *id002
|
50
|
+
description: A PAM strategy for OmniAuth.
|
51
|
+
email:
|
52
|
+
- hello@nickcharlton.net
|
53
|
+
executables: []
|
54
|
+
|
55
|
+
extensions: []
|
56
|
+
|
57
|
+
extra_rdoc_files: []
|
58
|
+
|
59
|
+
files:
|
60
|
+
- .gitignore
|
61
|
+
- Gemfile
|
62
|
+
- README.md
|
63
|
+
- Rakefile
|
64
|
+
- lib/omniauth-pam.rb
|
65
|
+
- lib/omniauth-pam/version.rb
|
66
|
+
- lib/omniauth/stategies/pam.rb
|
67
|
+
- omniauth-pam.gemspec
|
68
|
+
has_rdoc: true
|
69
|
+
homepage: https://github.com/nickcharlton/omniauth-pam
|
70
|
+
licenses: []
|
71
|
+
|
72
|
+
post_install_message:
|
73
|
+
rdoc_options: []
|
74
|
+
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
none: false
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
hash: 3
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
version: "0"
|
86
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 3
|
92
|
+
segments:
|
93
|
+
- 0
|
94
|
+
version: "0"
|
95
|
+
requirements: []
|
96
|
+
|
97
|
+
rubyforge_project: omniauth-pam
|
98
|
+
rubygems_version: 1.6.2
|
99
|
+
signing_key:
|
100
|
+
specification_version: 3
|
101
|
+
summary: A PAM strategy for OmniAuth.
|
102
|
+
test_files: []
|
103
|
+
|