omniauth-kerberos 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0ab31e63741bc6081a1ac585aa3e028a1b7df828
4
+ data.tar.gz: 58951311487178e942484b18364e3ca1c427980d
5
+ SHA512:
6
+ metadata.gz: b84a53ec922f86be59b43d7398ea23c0ad1469898d4eaccc07c187a5130bfada6bc39ea7c965441c07edbb2ade157b283db2c15d7269257e416de96cf566147e
7
+ data.tar.gz: edb5427c2c66a5398b697d4dc1fea3df0214a8e34a5a59ca6e12c1737cb72d277910ce97506fdb233c5fd3618262c13bb03db42d7bddc62358528e5edc203879
@@ -0,0 +1,11 @@
1
+ sudo: false
2
+ language: ruby
3
+ cache: bundler
4
+ rvm:
5
+ - '2.1'
6
+ - '2.0'
7
+ - 1.9.3
8
+ - rbx-2
9
+ env:
10
+ global:
11
+ secure: GFgbyRIlAc93IyH5clByNGS9iI/5OSaa2Ba0iGemyLR93I80qxIUNgMvXzp74YTTbGTrWyz9JPBSD14uO/3tuPYhXuawbDT0k1D/97Xm7wMhxLXZNSEATKt71g3bk/106fy+ULz6aqzQWnLkGHsvfg3vlkdyn8rX/X1HstajrcI=
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in omniauth-kerberos.gemspec
4
4
  gemspec
5
+
6
+ gem 'rake'
7
+ gem 'rspec'
8
+ gem 'rack-test'
9
+ gem 'codeclimate-test-reporter'
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # Omniauth::Strategies::Kerberos
2
2
 
3
- **omniauth-kerberos** is a simple [OmniAuth](https://github.com/intridea/omniauth)
4
- strategy to authenticate using a Kerberos server. **omniauth-kerberos** can be used as
5
- a authenticator for [OmniAuth MultiPassword](https://github.com/jgraichen/omniauth-multipassword).
3
+ [![Build Status](https://travis-ci.org/jgraichen/omniauth-kerberos.svg)](https://travis-ci.org/jgraichen/omniauth-kerberos)
4
+ [![Code Climate](https://codeclimate.com/github/jgraichen/omniauth-kerberos/badges/gpa.svg)](https://codeclimate.com/github/jgraichen/omniauth-kerberos)
5
+ [![Test Coverage](https://codeclimate.com/github/jgraichen/omniauth-kerberos/badges/coverage.svg)](https://codeclimate.com/github/jgraichen/omniauth-kerberos/coverage)
6
+
7
+ **omniauth-kerberos** is a simple [OmniAuth](https://github.com/intridea/omniauth) strategy to authenticate using a Kerberos server. **omniauth-kerberos** can be used as an authenticator for [OmniAuth MultiPassword](https://github.com/jgraichen/omniauth-multipassword).
6
8
 
7
9
 
8
10
  ## Installation
@@ -36,9 +38,7 @@ Rails.application.config.middleware.use OmniAuth::Builder do
36
38
  end
37
39
  ```
38
40
 
39
- You still need to configure your system for Kerberos usage like
40
- specifying realms. If you has your own login form you can specify
41
- the fields to use:
41
+ You still need to configure your system for Kerberos usage like specifying realms. If you has your own login form you can specify the fields to use:
42
42
 
43
43
  ```ruby
44
44
  Rails.application.config.middleware.use OmniAuth::Builder do
data/Rakefile CHANGED
@@ -1,2 +1,6 @@
1
1
  #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
2
+ require 'bundler/gem_tasks'
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ task default: :spec
@@ -1 +1 @@
1
- require "omniauth/strategies/kerberos"
1
+ require 'omniauth/strategies/kerberos'
@@ -1,6 +1,6 @@
1
- require "omniauth"
2
- require "krb5_auth"
3
- require "omniauth/multipassword/base"
1
+ require 'omniauth'
2
+ require 'krb5_auth'
3
+ require 'omniauth/multipassword/base'
4
4
 
5
5
  module OmniAuth
6
6
  module Strategies
@@ -15,7 +15,7 @@ module OmniAuth
15
15
 
16
16
  info do
17
17
  { username: username,
18
- email: username + "@" + @krb5.get_default_realm.downcase }
18
+ email: username + '@' + @krb5.get_default_realm.downcase }
19
19
  end
20
20
 
21
21
  def authenticate(username, password)
@@ -1,19 +1,19 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  Gem::Specification.new do |gem|
4
- gem.authors = ["Jan Graichen"]
5
- gem.email = ["jan.graichen@altimos.de"]
6
- gem.description = "An OmniAuth strategy for Kerberos."
7
- gem.summary = "An OmniAuth strategy for Kerberos."
8
- gem.homepage = "https://github.com/jgraichen/omniauth-kerberos"
4
+ gem.authors = ['Jan Graichen']
5
+ gem.email = ['jan.graichen@altimos.de']
6
+ gem.description = 'An OmniAuth strategy for Kerberos.'
7
+ gem.summary = 'An OmniAuth strategy for Kerberos.'
8
+ gem.homepage = 'https://github.com/jgraichen/omniauth-kerberos'
9
9
 
10
- gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
10
+ gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
11
11
  gem.files = `git ls-files`.split("\n")
12
12
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
13
- gem.name = "omniauth-kerberos"
14
- gem.require_paths = ["lib"]
15
- gem.version = "0.2.0"
13
+ gem.name = 'omniauth-kerberos'
14
+ gem.require_paths = ['lib']
15
+ gem.version = '0.3.0'
16
16
 
17
- gem.add_dependency "timfel-krb5-auth", "~> 0.8"
18
- gem.add_dependency "omniauth-multipassword"
17
+ gem.add_dependency 'timfel-krb5-auth', '~> 0.8'
18
+ gem.add_dependency 'omniauth-multipassword'
19
19
  end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ require 'rack/test'
3
+
4
+ describe OmniAuth::Strategies::Kerberos do
5
+ include Rack::Test::Methods
6
+
7
+ before do
8
+ fake = double 'krb5'
9
+ allow(::Krb5Auth::Krb5).to receive(:new).and_return fake
10
+
11
+ allow(fake).to receive(:get_default_realm).and_return 'example.org'
12
+
13
+ allow(fake).to receive(:get_init_creds_password) do |username, password|
14
+ if username == 'john' && password == 'secret'
15
+ true
16
+ else
17
+ fail ::Krb5Auth::Krb5::Exception
18
+ end
19
+ end
20
+ end
21
+
22
+ let(:app) do
23
+ Rack::Builder.new do
24
+ use OmniAuth::Test::PhonySession
25
+ use OmniAuth::Strategies::Kerberos
26
+ run ->(env) { [404, {}, [env['omniauth.auth']['uid'].to_s]] }
27
+ end.to_app
28
+ end
29
+
30
+ it 'shows login FORM' do
31
+ get '/auth/kerberos'
32
+ expect(last_response.body).to include '<form'
33
+ end
34
+
35
+ it 'redirect on wrong password' do
36
+ post '/auth/kerberos/callback', username: 'paul', password: 'wrong'
37
+ expect(last_response).to be_redirect
38
+ expect(last_response.headers['Location']).to eq \
39
+ '/auth/failure?message=invalid_credentials&strategy=kerberos'
40
+ end
41
+
42
+ it 'authenticates with password' do
43
+ post '/auth/kerberos/callback', username: 'john', password: 'secret'
44
+ expect(last_response.body).to eq 'john'
45
+ end
46
+ end
@@ -0,0 +1,28 @@
1
+ require 'rspec'
2
+
3
+ if ENV['CI'] || (defined?(:RUBY_ENGINE) && RUBY_ENGINE != 'rbx')
4
+ begin
5
+ require 'codeclimate-test-reporter'
6
+ CodeClimate::TestReporter.start
7
+ rescue LoadError
8
+ end
9
+ end
10
+
11
+ require 'omniauth-kerberos'
12
+
13
+ Dir[File.expand_path('spec/support/**/*.rb')].each { |f| require f }
14
+
15
+ # Disable omniauth logger
16
+ class NullLogger < Logger
17
+ def initialize(*_args)
18
+ end
19
+
20
+ def add(*_args, &_block)
21
+ end
22
+ end
23
+
24
+ OmniAuth.config.logger = NullLogger.new
25
+
26
+ RSpec.configure do |config|
27
+ config.order = 'random'
28
+ end
metadata CHANGED
@@ -1,38 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-kerberos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jan Graichen
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-04-21 00:00:00.000000000 Z
11
+ date: 2015-06-29 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: timfel-krb5-auth
16
- requirement: &17819040 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0.8'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *17819040
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.8'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: omniauth-multipassword
27
- requirement: &17832700 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *17832700
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  description: An OmniAuth strategy for Kerberos.
37
42
  email:
38
43
  - jan.graichen@altimos.de
@@ -40,7 +45,8 @@ executables: []
40
45
  extensions: []
41
46
  extra_rdoc_files: []
42
47
  files:
43
- - .gitignore
48
+ - ".gitignore"
49
+ - ".travis.yml"
44
50
  - Gemfile
45
51
  - LICENSE
46
52
  - README.md
@@ -48,28 +54,30 @@ files:
48
54
  - lib/omniauth-kerberos.rb
49
55
  - lib/omniauth/strategies/kerberos.rb
50
56
  - omniauth-kerberos.gemspec
57
+ - spec/omniauth/strategy/kerberos_spec.rb
58
+ - spec/spec_helper.rb
51
59
  homepage: https://github.com/jgraichen/omniauth-kerberos
52
60
  licenses: []
61
+ metadata: {}
53
62
  post_install_message:
54
63
  rdoc_options: []
55
64
  require_paths:
56
65
  - lib
57
66
  required_ruby_version: !ruby/object:Gem::Requirement
58
- none: false
59
67
  requirements:
60
- - - ! '>='
68
+ - - ">="
61
69
  - !ruby/object:Gem::Version
62
70
  version: '0'
63
71
  required_rubygems_version: !ruby/object:Gem::Requirement
64
- none: false
65
72
  requirements:
66
- - - ! '>='
73
+ - - ">="
67
74
  - !ruby/object:Gem::Version
68
75
  version: '0'
69
76
  requirements: []
70
77
  rubyforge_project:
71
- rubygems_version: 1.8.15
78
+ rubygems_version: 2.4.6
72
79
  signing_key:
73
- specification_version: 3
80
+ specification_version: 4
74
81
  summary: An OmniAuth strategy for Kerberos.
75
82
  test_files: []
83
+ has_rdoc: