omniauth-idcard 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 52600f1c4f90252288de881e7b53d84d3918fa4c
4
+ data.tar.gz: ece489ed80f51b8eafa2718aa8e4515b05fc3f9b
5
+ SHA512:
6
+ metadata.gz: 003891903e75a17b65788acfb2ab2af3e6f8aa7335f26ef68a2c44a4076309faa6d6c6b00ac7201d39bb7d1230aff867a1295ad386a59e5dd8d4f2850de492ba
7
+ data.tar.gz: 578828b451fc4b26cfbd46dc50966ba37b50f5acbeca11c8d62bcd9d32b9fa384107947865be883f40fb905825ff73a609bb349477e01ca6ec2019df79d991c3
@@ -4,12 +4,12 @@ require 'openssl'
4
4
  module OmniAuth
5
5
  module Strategies
6
6
  class Idcard < OmniAuth::Strategies::OAuth
7
-
7
+
8
8
  option :name, 'idcard'
9
9
  option :logger, nil
10
-
10
+
11
11
  uid { @user_data['serialNumber'] }
12
-
12
+
13
13
  info do
14
14
  {
15
15
  'uid' => uid,
@@ -21,26 +21,26 @@ module OmniAuth
21
21
  }
22
22
  }
23
23
  end
24
-
24
+
25
25
  def request_phase
26
- if @env['SSL_CLIENT_CERT']
26
+ if @env['SSL_CLIENT_CERT'] != ''
27
27
  debug "Start authentication with ID-Card. Got certificate:"
28
28
  debug @env['SSL_CLIENT_CERT']
29
-
29
+
30
30
  @user_data = parse_client_certificate(@env['SSL_CLIENT_CERT'])
31
31
  @env['REQUEST_METHOD'] = 'GET'
32
32
  @env['omniauth.auth'] = info
33
33
  @env['PATH_INFO'] = "#{OmniAuth.config.path_prefix}/#{name}/callback"
34
-
34
+
35
35
  debug "ID-Card request was authenticated successfully. User data: #{info.inspect}"
36
-
36
+
37
37
  call_app!
38
38
  else
39
39
  debug "Could not authenticate with ID-Card. Certificate is missing."
40
40
  fail!(:client_certificate_missing)
41
41
  end
42
42
  end
43
-
43
+
44
44
  def unescape(value)
45
45
  value.gsub( /\\(?:([nevfbart\\])|0?x([0-9a-fA-F]{2})|u([0-9a-fA-F]{4}))/ ) {
46
46
  if $3
@@ -55,16 +55,16 @@ module OmniAuth
55
55
 
56
56
  def parse_client_certificate(data)
57
57
  cert = OpenSSL::X509::Certificate.new(data)
58
-
59
- # from 2011-07-01 Common Name is encoded in UTF-8
58
+
59
+ # from 2011-07-01 Common Name is encoded in UTF-8
60
60
  subject_dn = if cert.not_before.to_date >= Date.parse('2011-07-01')
61
61
  unescape(cert.subject.to_s).force_encoding('UTF-8')
62
62
  else
63
63
  unescape(cert.subject.to_s).unpack("C*").pack("U*").scan(/./mu) {|s| s[0].chr }.gsub("\u0000", '')
64
64
  end
65
-
65
+
66
66
  debug "Subject DN: #{subject_dn}"
67
-
67
+
68
68
  subject_dn.split('/').inject(Hash.new) do |memo, part|
69
69
  item = part.split('=')
70
70
  memo[item.first.to_s] = item.last if item.last
@@ -76,8 +76,8 @@ module OmniAuth
76
76
  fail!(:invalid_credentials)
77
77
  end
78
78
 
79
- private
80
-
79
+ private
80
+
81
81
  def debug(message)
82
82
  options[:logger].debug("#{Time.now} #{message}") if options[:logger]
83
83
  end
@@ -1,5 +1,5 @@
1
1
  module Omniauth
2
2
  module Idcard
3
- VERSION = "0.2.1"
3
+ VERSION = "0.2.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-idcard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.2.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tarmo Talu
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-07 00:00:00.000000000 Z
11
+ date: 2014-01-17 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: omniauth-oauth
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,49 +41,43 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: webmock
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: simplecov
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rack-test
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  description: OmniAuth strategy for Estonian ID-Card
@@ -111,27 +100,26 @@ files:
111
100
  - spec/spec_helper.rb
112
101
  homepage: http://github.com/tarmotalu/omniauth-idcard
113
102
  licenses: []
103
+ metadata: {}
114
104
  post_install_message:
115
105
  rdoc_options: []
116
106
  require_paths:
117
107
  - lib
118
108
  required_ruby_version: !ruby/object:Gem::Requirement
119
- none: false
120
109
  requirements:
121
- - - ! '>='
110
+ - - '>='
122
111
  - !ruby/object:Gem::Version
123
112
  version: '0'
124
113
  required_rubygems_version: !ruby/object:Gem::Requirement
125
- none: false
126
114
  requirements:
127
- - - ! '>='
115
+ - - '>='
128
116
  - !ruby/object:Gem::Version
129
117
  version: '0'
130
118
  requirements: []
131
119
  rubyforge_project: omniauth-idcard
132
- rubygems_version: 1.8.24
120
+ rubygems_version: 2.1.10
133
121
  signing_key:
134
- specification_version: 3
122
+ specification_version: 4
135
123
  summary: OmniAuth strategy for Estonian ID-Card
136
124
  test_files:
137
125
  - spec/omniauth/strategies/idcard_spec.rb