omniauth-kerberos 0.2.0 → 0.4.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d1626ca445ca5eca6e00c9d75d223fb0339ba72e9bac2c4824e0a3a979255035
4
+ data.tar.gz: 7708abcde3c2001e57d7d6ae9e3ce06e9be3348ed8bedb789f65040e3d5d342a
5
+ SHA512:
6
+ metadata.gz: a07e12c058c68232e6954059c490331eb28f7be3bcd965b7a76c37fa35fceffa53b6977c16dbf630d73b45adc63bd2283196d58a37909edd1c62f9fa38cb02f2
7
+ data.tar.gz: 0b5d4c28355481ae0a8687a0a6ce152c2b673829a064758c172a4c9685dea6c0e1d69a6a3fd7afadf86bd7e1f1c0f7ecdc81e7a739d42435f9b99190869e196e
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: maintenance-cache-clear
3
+ on:
4
+ schedule:
5
+ - cron: "0 0 1 * *"
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ cache-clear:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - uses: easimon/wipe-cache@v2
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: maintenance-workflow-cleanup
3
+ on:
4
+ schedule:
5
+ - cron: "0 0 1 * *"
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ delete-workflow-runs:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: Mattraks/delete-workflow-runs@v2
13
+ with:
14
+ token: ${{ github.token }}
15
+ repository: ${{ github.repository }}
16
+ retain_days: 180
17
+ keep_minimum_runs: 50
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: test
3
+ on: push
4
+ jobs:
5
+ rspec:
6
+ name: "ruby-${{ matrix.ruby }}"
7
+ runs-on: ubuntu-22.04
8
+
9
+ strategy:
10
+ fail-fast: false
11
+ matrix:
12
+ ruby:
13
+ - "3.3"
14
+ - "3.2"
15
+ - "3.1"
16
+ - "3.0"
17
+ - "2.7"
18
+
19
+ env:
20
+ BUNDLE_WITHOUT: development
21
+
22
+ steps:
23
+ - uses: actions/checkout@master
24
+
25
+ - run: |
26
+ sudo apt-get update --quiet
27
+ sudo apt-get install --quiet --yes libkrb5-dev
28
+
29
+ - uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.ruby }}
32
+ bundler-cache: true
33
+ env:
34
+ BUNDLE_JOBS: 4
35
+ BUNDLE_RETRY: 3
36
+
37
+ - run: |
38
+ bundle exec rspec --color --format documentation
39
+
40
+ - uses: codecov/codecov-action@v4
41
+ with:
42
+ fail_ci_if_error: true
43
+ token: ${{ secrets.CODECOV_TOKEN }}
data/Gemfile CHANGED
@@ -2,3 +2,10 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in omniauth-kerberos.gemspec
4
4
  gemspec
5
+
6
+ gem 'rack-test'
7
+ gem 'rake'
8
+ gem 'rspec'
9
+
10
+ gem 'simplecov'
11
+ gem 'simplecov-cobertura'
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,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 +1 @@
1
- require "omniauth/strategies/kerberos"
1
+ require 'omniauth/strategies/kerberos'
@@ -1,19 +1,18 @@
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.version = '0.4.0'
5
+ gem.name = 'omniauth-kerberos'
6
+ gem.authors = ['Jan Graichen']
7
+ gem.email = ['jan.graichen@altimos.de']
8
+ gem.description = 'An OmniAuth strategy for Kerberos.'
9
+ gem.summary = 'An OmniAuth strategy for Kerberos.'
10
+ gem.homepage = 'https://github.com/jgraichen/omniauth-kerberos'
9
11
 
10
- gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
12
+ gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
11
13
  gem.files = `git ls-files`.split("\n")
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"
14
+ gem.require_paths = ['lib']
16
15
 
17
- gem.add_dependency "timfel-krb5-auth", "~> 0.8"
18
- gem.add_dependency "omniauth-multipassword"
16
+ gem.add_dependency 'timfel-krb5-auth', '~> 0.8'
17
+ gem.add_dependency 'omniauth-multipassword', '~> 2.0'
19
18
  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,32 @@
1
+ require 'rspec'
2
+
3
+ require 'simplecov'
4
+ require 'simplecov-cobertura'
5
+
6
+ SimpleCov.start do
7
+ add_filter 'spec'
8
+ end
9
+
10
+ SimpleCov.formatters = [
11
+ SimpleCov::Formatter::HTMLFormatter,
12
+ SimpleCov::Formatter::CoberturaFormatter,
13
+ ]
14
+
15
+ require 'omniauth-kerberos'
16
+
17
+ Dir[File.expand_path('spec/support/**/*.rb')].each { |f| require f }
18
+
19
+ # Disable omniauth logger
20
+ class NullLogger < Logger
21
+ def initialize(*_args)
22
+ end
23
+
24
+ def add(*_args, &_block)
25
+ end
26
+ end
27
+
28
+ OmniAuth.config.logger = NullLogger.new
29
+
30
+ RSpec.configure do |config|
31
+ config.order = 'random'
32
+ 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.4.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: 2024-07-22 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
- version: '0'
33
+ version: '2.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: '2.0'
36
41
  description: An OmniAuth strategy for Kerberos.
37
42
  email:
38
43
  - jan.graichen@altimos.de
@@ -40,7 +45,10 @@ executables: []
40
45
  extensions: []
41
46
  extra_rdoc_files: []
42
47
  files:
43
- - .gitignore
48
+ - ".github/workflows/maintenance-cache-wipe.yml"
49
+ - ".github/workflows/maintenance-workflow-cleanup.yml"
50
+ - ".github/workflows/test.yml"
51
+ - ".gitignore"
44
52
  - Gemfile
45
53
  - LICENSE
46
54
  - README.md
@@ -48,28 +56,28 @@ files:
48
56
  - lib/omniauth-kerberos.rb
49
57
  - lib/omniauth/strategies/kerberos.rb
50
58
  - omniauth-kerberos.gemspec
59
+ - spec/omniauth/strategies/kerberos_spec.rb
60
+ - spec/spec_helper.rb
51
61
  homepage: https://github.com/jgraichen/omniauth-kerberos
52
62
  licenses: []
63
+ metadata: {}
53
64
  post_install_message:
54
65
  rdoc_options: []
55
66
  require_paths:
56
67
  - lib
57
68
  required_ruby_version: !ruby/object:Gem::Requirement
58
- none: false
59
69
  requirements:
60
- - - ! '>='
70
+ - - ">="
61
71
  - !ruby/object:Gem::Version
62
72
  version: '0'
63
73
  required_rubygems_version: !ruby/object:Gem::Requirement
64
- none: false
65
74
  requirements:
66
- - - ! '>='
75
+ - - ">="
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  requirements: []
70
- rubyforge_project:
71
- rubygems_version: 1.8.15
79
+ rubygems_version: 3.5.11
72
80
  signing_key:
73
- specification_version: 3
81
+ specification_version: 4
74
82
  summary: An OmniAuth strategy for Kerberos.
75
83
  test_files: []