omniauth-pam 1.2.1 → 1.3.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 +5 -5
- data/.gitignore +27 -3
- data/.travis.yml +8 -0
- data/CHANGELOG.md +41 -0
- data/README.md +24 -20
- data/Rakefile +13 -0
- data/Vagrantfile +7 -9
- data/example/Gemfile +4 -5
- data/example/README.md +5 -4
- data/example/app.rb +1 -1
- data/lib/omniauth-pam.rb +1 -6
- data/lib/omniauth-pam/version.rb +1 -1
- data/lib/omniauth/pam.rb +9 -0
- data/lib/omniauth/strategies/pam.rb +15 -13
- data/omniauth-pam.gemspec +21 -17
- data/spec/omniauth/strategies/pam_spec.rb +79 -0
- data/spec/spec_helper.rb +9 -0
- metadata +80 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3ad17e332ef7ec8d88db799e55709bd4a37c0f066c7dbf009ff9fd89aa4f3055
|
4
|
+
data.tar.gz: f2b8dc59720e592fc6e60171bc61b28e4d506475fd26be7269c2730ee49f57ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5459da25741c89ec011f234cc4e634ccfffcf025ce94ee739eedcd86116a551e14810b7ddaa065ad55ef432c7fef8df9f5a85b31ccdac0c8895311dc9a123aa4
|
7
|
+
data.tar.gz: 911e2c60b64f08c52405b29991fcefc81555f2a0a9965b395ffe8ffa8dedd50d5b7e0ea9df446fe82ea583bb0e1304103939a274eb8c40f1fa4865bdcdc6ee57
|
data/.gitignore
CHANGED
@@ -1,4 +1,28 @@
|
|
1
|
-
*.gem
|
2
|
-
.bundle
|
3
1
|
Gemfile.lock
|
4
|
-
|
2
|
+
*.gem
|
3
|
+
*.rbc
|
4
|
+
/.config
|
5
|
+
/coverage/
|
6
|
+
/InstalledFiles
|
7
|
+
/pkg/
|
8
|
+
/spec/reports/
|
9
|
+
/spec/examples.txt
|
10
|
+
/test/tmp/
|
11
|
+
/test/version_tmp/
|
12
|
+
/tmp/
|
13
|
+
|
14
|
+
## Specific to RubyMotion:
|
15
|
+
.dat*
|
16
|
+
.repl_history
|
17
|
+
build/
|
18
|
+
|
19
|
+
## Documentation cache and generated files:
|
20
|
+
/.yardoc/
|
21
|
+
/_yardoc/
|
22
|
+
/doc/
|
23
|
+
/rdoc/
|
24
|
+
|
25
|
+
## Environment normalisation:
|
26
|
+
/.bundle/
|
27
|
+
/vendor/bundle
|
28
|
+
/lib/bundler/man/
|
data/.travis.yml
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## 1.3.0 (2018-05-19)
|
4
|
+
|
5
|
+
* Update the README.
|
6
|
+
* Add this CHANGELOG.
|
7
|
+
* Update the dependencies ([12][]).
|
8
|
+
* List the correct port in the README ([10][]).
|
9
|
+
* Add a more standard Ruby gitignore ([15][]).
|
10
|
+
* Add Travis for CI ([14][]).
|
11
|
+
* Add tests ([13][]).
|
12
|
+
* Update Vagrantfile.
|
13
|
+
* Handle cases where `gecos` data is missing.
|
14
|
+
|
15
|
+
[13]: https://github.com/nickcharlton/omniauth-pam/pull/13
|
16
|
+
[14]: https://github.com/nickcharlton/omniauth-pam/pull/14
|
17
|
+
[15]: https://github.com/nickcharlton/omniauth-pam/pull/15
|
18
|
+
[10]: https://github.com/nickcharlton/omniauth-pam/pull/10
|
19
|
+
[12]: https://github.com/nickcharlton/omniauth-pam/pull/12
|
20
|
+
|
21
|
+
## 1.2.1 (2012-11-15)
|
22
|
+
|
23
|
+
* Adds a license file.
|
24
|
+
* Improves the README.
|
25
|
+
|
26
|
+
## 1.2.0 (2013-11-09)
|
27
|
+
|
28
|
+
* Add missing OmniAuth interface requirements.
|
29
|
+
* Add `etc` to fetch info fields.
|
30
|
+
* Add a basic Sinatra example.
|
31
|
+
* Add a Vagrantfile for testing.
|
32
|
+
* Add a configurable `email` field.
|
33
|
+
|
34
|
+
## 1.0.1 (2012-02-26)
|
35
|
+
|
36
|
+
* Fix load path issues.
|
37
|
+
* Specify `rpam-ruby19` version dependency.
|
38
|
+
|
39
|
+
## 1.0.0 (2012-01-15)
|
40
|
+
|
41
|
+
* Initial Release.
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# omniauth-pam
|
2
2
|
|
3
|
-
An OmniAuth strategy to allow you to authentication against
|
4
|
-
Modules (PAM).
|
3
|
+
An [OmniAuth][] strategy to allow you to authentication against
|
4
|
+
[Pluggable Authentication Modules][pam] (PAM).
|
5
5
|
|
6
6
|
## Installation
|
7
7
|
|
@@ -13,33 +13,37 @@ gem install omniauth-pam
|
|
13
13
|
|
14
14
|
## Usage
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
Under both Debian and Ubuntu you'll need the `libpam0g-dev` package to compile the
|
19
|
-
`rpam` dependency.
|
16
|
+
`libpam0g-dev` is needed to install on Debian and Ubuntu. An example
|
17
|
+
`Vagrantfile` is provided to test this out.
|
20
18
|
|
21
|
-
|
22
|
-
directory provides a working Sinatra example.
|
23
|
-
|
24
|
-
### Simple Sinatra Example
|
25
|
-
|
26
|
-
But, getting it working is as simple as this:
|
19
|
+
### Sinatra Example
|
27
20
|
|
28
21
|
```ruby
|
29
|
-
require
|
30
|
-
require
|
22
|
+
require "omniauth"
|
23
|
+
require "omniauth-pam"
|
31
24
|
|
32
|
-
use Rack::Session::Cookie
|
25
|
+
use Rack::Session::Cookie, secret: "a_random_hash"
|
33
26
|
use OmniAuth::Strategies::PAM
|
34
27
|
|
35
|
-
get
|
36
|
-
|
28
|
+
get "/auth/:provider/callback" do
|
29
|
+
puts request.env['omniauth.auth']
|
37
30
|
end
|
38
31
|
```
|
39
32
|
|
40
|
-
|
33
|
+
See the [example/][] directory.
|
41
34
|
|
42
|
-
|
35
|
+
## Contributing
|
36
|
+
|
37
|
+
1. Fork it ( https://github.com/nickcharlton/omniauth-pam/fork )
|
38
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
39
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
40
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
41
|
+
5. Create a new Pull Request
|
42
|
+
|
43
|
+
## Author
|
43
44
|
|
44
|
-
|
45
|
+
Copyright (c) 2018 Nick Charlton. MIT Licensed.
|
45
46
|
|
47
|
+
[OmniAuth]: https://github.com/omniauth/omniauth
|
48
|
+
[pam]: https://en.wikipedia.org/wiki/Pluggable_authentication_module<Paste>
|
49
|
+
[example/]: /example
|
data/Rakefile
CHANGED
@@ -1 +1,14 @@
|
|
1
|
+
begin
|
2
|
+
require "bundler/setup"
|
3
|
+
rescue LoadError
|
4
|
+
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
5
|
+
end
|
6
|
+
|
1
7
|
require "bundler/gem_tasks"
|
8
|
+
|
9
|
+
require "rspec/core"
|
10
|
+
require "rspec/core/rake_task"
|
11
|
+
|
12
|
+
RSpec::Core::RakeTask.new
|
13
|
+
|
14
|
+
task default: :spec
|
data/Vagrantfile
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
# -*- mode: ruby -*-
|
2
2
|
# vi: set ft=ruby :
|
3
3
|
|
4
|
-
Vagrant.configure(
|
5
|
-
config.vm.hostname =
|
6
|
-
config.vm.box =
|
7
|
-
config.vm.box_url = 'http://boxes.nickcharlton.net/wheezy64-chef-virtualbox.box'
|
4
|
+
Vagrant.configure("2") do |config|
|
5
|
+
config.vm.hostname = "omniauth-pam"
|
6
|
+
config.vm.box = "boxesio/ruby"
|
8
7
|
|
9
|
-
|
10
|
-
|
8
|
+
config.vm.network "forwarded_port", guest: 5000,
|
9
|
+
host: 8080,
|
10
|
+
auto_correct: true
|
11
11
|
|
12
|
-
|
13
|
-
config.vm.provision 'shell', inline: 'sudo apt-get -yqq install git libpam0g-dev;'\
|
14
|
-
'sudo gem install bundler foreman'
|
12
|
+
config.vm.provision "shell", inline: "sudo apt-get -yq install libpam0g-dev"
|
15
13
|
end
|
data/example/Gemfile
CHANGED
@@ -1,6 +1,5 @@
|
|
1
|
-
source
|
1
|
+
source "https://rubygems.org"
|
2
2
|
|
3
|
-
gem
|
4
|
-
gem
|
5
|
-
gem
|
6
|
-
gem 'unicorn'
|
3
|
+
gem "omniauth", "~> 1.5"
|
4
|
+
gem "omniauth-pam", path: File.join(__FILE__, "../..")
|
5
|
+
gem "sinatra", "~> 2.0", require: "sinatra/base"
|
data/example/README.md
CHANGED
@@ -6,17 +6,18 @@ primitive [Sinatra][] application.
|
|
6
6
|
You can start it by doing:
|
7
7
|
|
8
8
|
```bash
|
9
|
-
|
10
|
-
bundle install
|
11
|
-
|
9
|
+
sudo apt-get install bundler # or: sudo gem install bundler
|
10
|
+
bundle install --path vendor/bundle
|
11
|
+
bundle exec rackup
|
12
12
|
```
|
13
13
|
|
14
14
|
Preferably from within the Vagrantfile included in the root of the repository.
|
15
15
|
|
16
16
|
## Usage
|
17
17
|
|
18
|
-
1. Go to http://localhost:
|
18
|
+
1. Go to http://localhost:9292
|
19
19
|
2. You'll be redirected to a login page.
|
20
20
|
3. Enter a system user account (for example: vagrant/vagrant).
|
21
21
|
4. Then, you'll be redirected to another page listing the auth hash details.
|
22
22
|
|
23
|
+
[Sinatra]: http://www.sinatrarb.com
|
data/example/app.rb
CHANGED
data/lib/omniauth-pam.rb
CHANGED
data/lib/omniauth-pam/version.rb
CHANGED
data/lib/omniauth/pam.rb
ADDED
@@ -9,6 +9,8 @@ module OmniAuth
|
|
9
9
|
|
10
10
|
# this map is used to return gecos in info
|
11
11
|
option :gecos_map, [:name, :location, :phone, :home_phone, :description]
|
12
|
+
# option :email_domain - if defined, info.email is build using uid@email_domain if not found from gecos
|
13
|
+
# option :service - pam service name passed to rpam (/etc/pam.d/service_name), if not given rpam uses 'rpam'
|
12
14
|
|
13
15
|
def request_phase
|
14
16
|
OmniAuth::Form.build(
|
@@ -31,27 +33,27 @@ module OmniAuth
|
|
31
33
|
super
|
32
34
|
end
|
33
35
|
|
36
|
+
uid do
|
37
|
+
request['username']
|
38
|
+
end
|
39
|
+
|
40
|
+
info do
|
41
|
+
info = { :nickname => uid, :name => uid }
|
42
|
+
info[:email] = "#{uid}@#{options[:email_domain]}" if options.has_key?(:email_domain)
|
43
|
+
info.merge!(parse_gecos || {})
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
34
48
|
def parse_gecos
|
35
49
|
if options[:gecos_map].kind_of?(Array)
|
36
50
|
begin
|
37
51
|
gecos = Etc.getpwnam(uid).gecos.split(',')
|
38
|
-
Hash[options[:gecos_map].zip(gecos)].delete_if { |k, v| v.nil? }
|
52
|
+
Hash[options[:gecos_map].zip(gecos)].delete_if { |k, v| v.nil? || v.empty? }
|
39
53
|
rescue
|
40
54
|
end
|
41
55
|
end
|
42
56
|
end
|
43
|
-
|
44
|
-
uid do
|
45
|
-
request['username']
|
46
|
-
end
|
47
|
-
|
48
|
-
info do
|
49
|
-
{
|
50
|
-
:nickname => uid,
|
51
|
-
:name => uid,
|
52
|
-
:email => "#{uid}#{ options.has_key?(:email) ? options[:email] : ''}"
|
53
|
-
}.merge!(parse_gecos)
|
54
|
-
end
|
55
57
|
end
|
56
58
|
end
|
57
59
|
end
|
data/omniauth-pam.gemspec
CHANGED
@@ -1,25 +1,29 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
$:.push File.expand_path("lib", __dir__)
|
2
|
+
|
3
|
+
require "omniauth-pam/version"
|
3
4
|
|
4
5
|
Gem::Specification.new do |s|
|
5
|
-
s.name =
|
6
|
+
s.name = "omniauth-pam"
|
6
7
|
s.version = OmniAuth::PAM::VERSION
|
7
|
-
s.authors = [
|
8
|
-
s.email = [
|
9
|
-
s.homepage =
|
10
|
-
s.license =
|
11
|
-
s.summary =
|
12
|
-
s.description =
|
13
|
-
|
14
|
-
|
15
|
-
s.rubyforge_project = 'omniauth-pam'
|
8
|
+
s.authors = ["Nick Charlton"]
|
9
|
+
s.email = ["nick@nickcharlton.net"]
|
10
|
+
s.homepage = "https://github.com/nickcharlton/omniauth-pam"
|
11
|
+
s.license = "MIT"
|
12
|
+
s.summary = "A PAM strategy for OmniAuth."
|
13
|
+
s.description = "An OmniAuth strategy to allow you to authenticate " \
|
14
|
+
"against Pluggable Authentication Modules (PAM)."
|
16
15
|
|
17
|
-
s.files = `git ls-files`.split(
|
18
|
-
s.
|
19
|
-
s.
|
20
|
-
s.require_paths = [
|
16
|
+
s.files = `git ls-files`.split($RS)
|
17
|
+
s.executables = s.files.grep(/^exe/) { |f| File.basename(f) }
|
18
|
+
s.test_files = s.files.grep(/^(test|spec|features)/)
|
19
|
+
s.require_paths = ["lib"]
|
21
20
|
|
22
|
-
s.add_runtime_dependency
|
21
|
+
s.add_runtime_dependency "omniauth", "~> 1.5"
|
23
22
|
s.add_runtime_dependency 'rpam-ruby19', '~> 1.2.1'
|
24
23
|
s.add_runtime_dependency 'etc'
|
24
|
+
|
25
|
+
s.add_development_dependency "pry"
|
26
|
+
s.add_development_dependency "rack-test"
|
27
|
+
s.add_development_dependency "rake"
|
28
|
+
s.add_development_dependency "rspec"
|
25
29
|
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe OmniAuth::Strategies::PAM do
|
4
|
+
describe "#request_phase" do
|
5
|
+
it "displays a form" do
|
6
|
+
get "/auth/pam"
|
7
|
+
|
8
|
+
expect(last_response.body).to include("<form")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#callback_phase" do
|
13
|
+
context "with valid credentials" do
|
14
|
+
it "populates the auth hash" do
|
15
|
+
mock_rpam(valid_credentials.merge(opts: {})).and_return(true)
|
16
|
+
mock_etc
|
17
|
+
|
18
|
+
post "/auth/pam/callback", valid_credentials
|
19
|
+
|
20
|
+
expect(auth_hash["provider"]).to eq("pam")
|
21
|
+
expect(auth_hash["uid"]).to eq("authur")
|
22
|
+
expect(auth_hash["info"]["name"]).to eq("Authur Dent")
|
23
|
+
expect_rpam_to_be_called(valid_credentials.merge(opts: {}))
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "with invalid credentials" do
|
28
|
+
it "redirects to /auth/failure" do
|
29
|
+
mock_rpam(invalid_credentials.merge(opts: {}))
|
30
|
+
|
31
|
+
post "/auth/pam/callback", invalid_credentials
|
32
|
+
|
33
|
+
expect(last_response).to be_redirect
|
34
|
+
expect(last_response.headers["Location"]).to eq(
|
35
|
+
"/auth/failure?message=invalid_credentials&strategy=pam",
|
36
|
+
)
|
37
|
+
expect_rpam_to_be_called(invalid_credentials.merge(opts: {}))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def app
|
45
|
+
Rack::Builder.new do
|
46
|
+
use Rack::Session::Cookie, secret: "xyz"
|
47
|
+
use OmniAuth::Strategies::PAM
|
48
|
+
|
49
|
+
run lambda { |env| [404, { "env" => env }, ["PAM Strategy App"]] }
|
50
|
+
end.to_app
|
51
|
+
end
|
52
|
+
|
53
|
+
def auth_hash
|
54
|
+
last_response.headers["env"]["omniauth.auth"]
|
55
|
+
end
|
56
|
+
|
57
|
+
def valid_credentials
|
58
|
+
{ username: "authur", password: "a_password" }
|
59
|
+
end
|
60
|
+
|
61
|
+
def invalid_credentials
|
62
|
+
{ username: "not_a_valid_user", password: "not_a_valid_password" }
|
63
|
+
end
|
64
|
+
|
65
|
+
def mock_rpam(username:, password:, opts:)
|
66
|
+
allow(Rpam).to receive(:auth).with(username, password, opts)
|
67
|
+
end
|
68
|
+
|
69
|
+
def expect_rpam_to_be_called(username:, password:, opts: {})
|
70
|
+
expect(Rpam).to have_received(:auth).with(username, password, opts)
|
71
|
+
end
|
72
|
+
|
73
|
+
def mock_etc
|
74
|
+
etc_struct = Etc::Passwd.new
|
75
|
+
etc_struct.gecos = "Authur Dent,,"
|
76
|
+
|
77
|
+
expect(Etc).to receive(:getpwnam).with("authur").and_return(etc_struct)
|
78
|
+
end
|
79
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,66 +1,124 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-pam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Charlton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.5'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rpam-ruby19
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.2.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.2.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: etc
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rack-test
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
53
109
|
- !ruby/object:Gem::Version
|
54
110
|
version: '0'
|
55
111
|
description: An OmniAuth strategy to allow you to authenticate against Pluggable Authentication
|
56
112
|
Modules (PAM).
|
57
113
|
email:
|
58
|
-
-
|
114
|
+
- nick@nickcharlton.net
|
59
115
|
executables: []
|
60
116
|
extensions: []
|
61
117
|
extra_rdoc_files: []
|
62
118
|
files:
|
63
|
-
- .gitignore
|
119
|
+
- ".gitignore"
|
120
|
+
- ".travis.yml"
|
121
|
+
- CHANGELOG.md
|
64
122
|
- Gemfile
|
65
123
|
- LICENSE
|
66
124
|
- README.md
|
@@ -73,8 +131,11 @@ files:
|
|
73
131
|
- example/config.ru
|
74
132
|
- lib/omniauth-pam.rb
|
75
133
|
- lib/omniauth-pam/version.rb
|
134
|
+
- lib/omniauth/pam.rb
|
76
135
|
- lib/omniauth/strategies/pam.rb
|
77
136
|
- omniauth-pam.gemspec
|
137
|
+
- spec/omniauth/strategies/pam_spec.rb
|
138
|
+
- spec/spec_helper.rb
|
78
139
|
homepage: https://github.com/nickcharlton/omniauth-pam
|
79
140
|
licenses:
|
80
141
|
- MIT
|
@@ -85,18 +146,20 @@ require_paths:
|
|
85
146
|
- lib
|
86
147
|
required_ruby_version: !ruby/object:Gem::Requirement
|
87
148
|
requirements:
|
88
|
-
- -
|
149
|
+
- - ">="
|
89
150
|
- !ruby/object:Gem::Version
|
90
151
|
version: '0'
|
91
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
153
|
requirements:
|
93
|
-
- -
|
154
|
+
- - ">="
|
94
155
|
- !ruby/object:Gem::Version
|
95
156
|
version: '0'
|
96
157
|
requirements: []
|
97
|
-
rubyforge_project:
|
98
|
-
rubygems_version: 2.
|
158
|
+
rubyforge_project:
|
159
|
+
rubygems_version: 2.7.6
|
99
160
|
signing_key:
|
100
161
|
specification_version: 4
|
101
162
|
summary: A PAM strategy for OmniAuth.
|
102
|
-
test_files:
|
163
|
+
test_files:
|
164
|
+
- spec/omniauth/strategies/pam_spec.rb
|
165
|
+
- spec/spec_helper.rb
|