omniauth-swedbank 0.0.4 → 0.0.5
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 +2 -0
- data/.travis.yml +5 -0
- data/README.md +3 -0
- data/lib/omniauth-swedbank.rb +4 -1
- data/lib/omniauth/locales/omniauth.en.yml +5 -0
- data/lib/omniauth/locales/omniauth.lv.yml +5 -0
- data/lib/omniauth/strategies/swedbank.rb +47 -37
- data/lib/omniauth/swedbank.rb +1 -1
- data/lib/omniauth/swedbank/version.rb +1 -1
- data/omniauth-swedbank.gemspec +4 -2
- data/spec/omniauth/strategies/swedbank_spec.rb +54 -54
- data/spec/spec_helper.rb +3 -1
- metadata +25 -4
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
|
3
3
|
TODO: Write a gem description
|
4
4
|
|
5
|
+
[](http://badge.fury.io/rb/omniauth-swedbank)
|
6
|
+
[](https://travis-ci.org/kirsis/omniauth-swedbank)
|
7
|
+
|
5
8
|
## Installation
|
6
9
|
|
7
10
|
Add this line to your application's Gemfile:
|
data/lib/omniauth-swedbank.rb
CHANGED
@@ -1,16 +1,23 @@
|
|
1
1
|
require 'omniauth'
|
2
2
|
require 'base64'
|
3
3
|
|
4
|
+
class String
|
5
|
+
def prepend_length
|
6
|
+
# prepend length to string in 0xx format
|
7
|
+
len = self.to_s.length
|
8
|
+
self.dup.to_s.force_encoding("ascii").prepend(len.to_s.rjust(3, '0'))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
4
12
|
module OmniAuth
|
5
13
|
module Strategies
|
6
14
|
class Swedbank
|
7
15
|
# TODO add support for overriding the VK_LANG parameter
|
8
|
-
# TODO i18n for all texts
|
9
16
|
|
10
17
|
include OmniAuth::Strategy
|
11
18
|
|
12
|
-
AUTH_SERVICE_ID =
|
13
|
-
AUTH_SERVICE_VERSION =
|
19
|
+
AUTH_SERVICE_ID = "4002"
|
20
|
+
AUTH_SERVICE_VERSION = "008" # This value must not be used as a number, so as to not lose the padding
|
14
21
|
# Padding is important when generating the VK_MAC value
|
15
22
|
|
16
23
|
args [:private_key_file, :public_key_file, :snd_id, :rec_id]
|
@@ -32,30 +39,28 @@ module OmniAuth
|
|
32
39
|
@nonce = ((full_host.gsub(/[\:\/]/, "X") + SecureRandom.uuid.gsub("-", "")).rjust 50, " ")[-50, 50]
|
33
40
|
end
|
34
41
|
|
35
|
-
def append_value_to_signature(value, signature = "")
|
36
|
-
signature << "#{value.to_s.bytesize.to_s.rjust(3, '0')}#{value}"
|
37
|
-
end
|
38
|
-
|
39
42
|
def signature_input
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
[
|
44
|
+
AUTH_SERVICE_ID, # VK_SERVICE
|
45
|
+
AUTH_SERVICE_VERSION, # VK_SERVICE
|
46
|
+
options.snd_id, # VK_SND_ID
|
47
|
+
options.rec_id, # VK_REC_ID
|
48
|
+
nonce, # VK_NONCE
|
49
|
+
callback_url # VK_RETURN
|
50
|
+
].map(&:prepend_length).join
|
46
51
|
end
|
47
52
|
|
48
|
-
def signature
|
53
|
+
def signature(priv_key)
|
49
54
|
Base64.encode64(priv_key.sign(OpenSSL::Digest::SHA1.new, signature_input))
|
50
55
|
end
|
51
56
|
|
52
57
|
uid do
|
53
|
-
request.params[
|
58
|
+
request.params["VK_INFO"].match(/ISIK:(\d{6}\-\d{5})/)[1]
|
54
59
|
end
|
55
60
|
|
56
61
|
info do
|
57
62
|
{
|
58
|
-
:full_name => request.params[
|
63
|
+
:full_name => request.params["VK_INFO"].match(/NIMI:(.+)/)[1]
|
59
64
|
}
|
60
65
|
end
|
61
66
|
|
@@ -66,26 +71,28 @@ module OmniAuth
|
|
66
71
|
return fail!(:public_key_load_err, e)
|
67
72
|
end
|
68
73
|
|
69
|
-
if request.params[
|
74
|
+
if request.params["VK_SERVICE"] != "3003"
|
70
75
|
return fail!(:unsupported_response_service_err)
|
71
76
|
end
|
72
77
|
|
73
|
-
if request.params[
|
78
|
+
if request.params["VK_VERSION"] != "008"
|
74
79
|
return fail!(:unsupported_response_version_err)
|
75
80
|
end
|
76
81
|
|
77
|
-
if request.params[
|
82
|
+
if request.params["VK_ENCODING"] != "UTF-8"
|
78
83
|
return fail!(:unsupported_response_encoding_err)
|
79
84
|
end
|
80
85
|
|
81
|
-
sig_str =
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
86
|
+
sig_str = [
|
87
|
+
request.params["VK_SERVICE"],
|
88
|
+
request.params["VK_VERSION"],
|
89
|
+
request.params["VK_SND_ID"],
|
90
|
+
request.params["VK_REC_ID"],
|
91
|
+
request.params["VK_NONCE"],
|
92
|
+
request.params["VK_INFO"]
|
93
|
+
].map(&:prepend_length).join
|
87
94
|
|
88
|
-
raw_signature = Base64.decode64(request.params[
|
95
|
+
raw_signature = Base64.decode64(request.params["VK_MAC"])
|
89
96
|
|
90
97
|
if !pub_key.verify(OpenSSL::Digest::SHA1.new, raw_signature, sig_str)
|
91
98
|
return fail!(:invalid_response_signature_err)
|
@@ -104,22 +111,25 @@ module OmniAuth
|
|
104
111
|
end
|
105
112
|
|
106
113
|
OmniAuth.config.form_css = nil
|
107
|
-
form = OmniAuth::Form.new(:title => "
|
114
|
+
form = OmniAuth::Form.new(:title => I18n.t("omniauth.swedbank.please_wait"), :url => options.site)
|
108
115
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
116
|
+
{
|
117
|
+
"VK_SERVICE" => AUTH_SERVICE_ID,
|
118
|
+
"VK_VERSION" => AUTH_SERVICE_VERSION,
|
119
|
+
"VK_SND_ID" => options.snd_id,
|
120
|
+
"VK_REC_ID" => options.rec_id,
|
121
|
+
"VK_NONCE" => nonce,
|
122
|
+
"VK_RETURN" => callback_url,
|
123
|
+
"VK_LANG" => "LAT",
|
124
|
+
"VK_MAC" => signature(priv_key)
|
125
|
+
}.each do |name, val|
|
126
|
+
form.html "<input type=\"hidden\" name=\"#{name}\" value=\"#{val}\" />"
|
127
|
+
end
|
117
128
|
|
118
|
-
form.button "
|
129
|
+
form.button I18n.t("omniauth.swedbank.click_here_if_not_redirected")
|
119
130
|
|
120
131
|
form.instance_variable_set("@html",
|
121
132
|
form.to_html.gsub("</form>", "</form><script type=\"text/javascript\">document.forms[0].submit();</script>"))
|
122
|
-
#puts form.to_html
|
123
133
|
form.to_response
|
124
134
|
rescue => e
|
125
135
|
fail!(:unknown_request_err, e)
|
data/lib/omniauth/swedbank.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
require 'omniauth/swedbank/version'
|
2
|
-
require 'omniauth/strategies/swedbank'
|
2
|
+
require 'omniauth/strategies/swedbank'
|
data/omniauth-swedbank.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'omniauth/swedbank/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "omniauth-swedbank"
|
8
8
|
spec.version = Omniauth::Swedbank::VERSION
|
9
|
-
spec.authors = ["Jānis Kiršteins"]
|
10
|
-
spec.email = ["janis@montadigital.com"]
|
9
|
+
spec.authors = ["Jānis Kiršteins", "Kristaps Ērglis"]
|
10
|
+
spec.email = ["janis@montadigital.com", "kristaps.erglis@gmail.com" ]
|
11
11
|
spec.description = %q{OmniAuth strategy for Swedbank Banklink}
|
12
12
|
spec.summary = %q{OmniAuth strategy for Swedbank Banklink}
|
13
13
|
spec.homepage = ""
|
@@ -23,4 +23,6 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency 'rspec', '~> 2.7'
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
25
25
|
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "i18n"
|
27
|
+
|
26
28
|
end
|
@@ -7,7 +7,7 @@ describe OmniAuth::Strategies::Swedbank do
|
|
7
7
|
|
8
8
|
let(:app){ Rack::Builder.new do |b|
|
9
9
|
b.use Rack::Session::Cookie, {:secret => "abc123"}
|
10
|
-
b.use(OmniAuth::Strategies::Swedbank, PRIVATE_KEY_FILE, PUBLIC_KEY_FILE,
|
10
|
+
b.use(OmniAuth::Strategies::Swedbank, PRIVATE_KEY_FILE, PUBLIC_KEY_FILE, "MY_SND_ID", "MY_REC_ID")
|
11
11
|
b.run lambda{|env| [404, {}, ['Not Found']]}
|
12
12
|
end.to_app }
|
13
13
|
|
@@ -18,11 +18,11 @@ describe OmniAuth::Strategies::Swedbank do
|
|
18
18
|
|
19
19
|
context "request phase" do
|
20
20
|
EXPECTED_VALUES = {
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
"VK_SERVICE" => "4002",
|
22
|
+
"VK_VERSION" => "008",
|
23
|
+
"VK_SND_ID" => "MY_SND_ID",
|
24
|
+
"VK_REC_ID" => "MY_REC_ID",
|
25
|
+
"VK_RETURN" => "http://example.org/auth/swedbank/callback"
|
26
26
|
}
|
27
27
|
|
28
28
|
before(:each){ get '/auth/swedbank' }
|
@@ -54,7 +54,7 @@ describe OmniAuth::Strategies::Swedbank do
|
|
54
54
|
"009MY_SND_ID" + # VK_SND_ID
|
55
55
|
"009MY_REC_ID" + # VK_REC_ID
|
56
56
|
"050" + last_response_nonce + # VK_NONCE
|
57
|
-
"041#{EXPECTED_VALUES[
|
57
|
+
"041#{EXPECTED_VALUES["VK_RETURN"]}" # V_RETURN
|
58
58
|
|
59
59
|
expected_mac = Base64.encode64(private_key.sign(OpenSSL::Digest::SHA1.new, sig_str))
|
60
60
|
expect(last_response_mac).to eq(expected_mac)
|
@@ -73,7 +73,7 @@ describe OmniAuth::Strategies::Swedbank do
|
|
73
73
|
context "with custom options" do
|
74
74
|
let(:app){ Rack::Builder.new do |b|
|
75
75
|
b.use Rack::Session::Cookie, {:secret => "abc123"}
|
76
|
-
b.use(OmniAuth::Strategies::Swedbank, PRIVATE_KEY_FILE, PUBLIC_KEY_FILE,
|
76
|
+
b.use(OmniAuth::Strategies::Swedbank, PRIVATE_KEY_FILE, PUBLIC_KEY_FILE, "MY_SND_ID", "MY_REC_ID",
|
77
77
|
:site => "https://test.lv/banklink")
|
78
78
|
b.run lambda{|env| [404, {}, ['Not Found']]}
|
79
79
|
end.to_app }
|
@@ -86,7 +86,7 @@ describe OmniAuth::Strategies::Swedbank do
|
|
86
86
|
context "with non-existant private key files" do
|
87
87
|
let(:app){ Rack::Builder.new do |b|
|
88
88
|
b.use Rack::Session::Cookie, {:secret => "abc123"}
|
89
|
-
b.use(OmniAuth::Strategies::Swedbank, "missing-private-key-file.pem", PUBLIC_KEY_FILE,
|
89
|
+
b.use(OmniAuth::Strategies::Swedbank, "missing-private-key-file.pem", PUBLIC_KEY_FILE, "MY_SND_ID", "MY_REC_ID")
|
90
90
|
b.run lambda{|env| [404, {}, ['Not Found']]}
|
91
91
|
end.to_app }
|
92
92
|
|
@@ -103,15 +103,15 @@ describe OmniAuth::Strategies::Swedbank do
|
|
103
103
|
context "with valid response" do
|
104
104
|
before do
|
105
105
|
post :'/auth/swedbank/callback',
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
106
|
+
"VK_SERVICE" => '3003',
|
107
|
+
"VK_VERSION" => '008',
|
108
|
+
"VK_SND_ID" => "HP",
|
109
|
+
"VK_REC_ID" => "MY_REC_ID",
|
110
|
+
"VK_NONCE" => "pXXXlocalhostX3000b41292810c0345a7b3770b1c807bed7a",
|
111
|
+
"VK_INFO" => 'ISIK:123456-12345;NIMI:Example User',
|
112
|
+
"VK_MAC" => "cmXyp2My7P9pTgrzqJeg7qH+NPCuyaiGNpQIrcCr6S44w0bH+Ao4WDViqytaPH2vENooVPXDSgOcBqHTg44gJ9FlrhI5StiouHVhjpCcWg+h/ERcyc8w58PjsEmdsd4BIpaGXNyhvcIKdWfNwYA1UCIrmFsPAPWfVeorNxp81E7pvY4p4zsqMF80YZ7/RdOpjrtuXJ4nYJ7d+2fXJKKmUlqArCc786DJdb/z8wVDSNA9BZxnf8EE6s//p9gzqLPAg/T9Xp/2024n2JtC6kwsWF614bn64LEZz5c8owZth6FV+2fjnzHxOiifOe+jc9SRstCLITK6Y0j+6n8auiEZ5g==",
|
113
|
+
"VK_ENCODING" => 'UTF-8',
|
114
|
+
"VK_LANG" => 'LAT'
|
115
115
|
end
|
116
116
|
|
117
117
|
it "sets the correct uid value in the auth hash" do
|
@@ -141,15 +141,15 @@ describe OmniAuth::Strategies::Swedbank do
|
|
141
141
|
|
142
142
|
it "detects invalid signature" do
|
143
143
|
post :'/auth/swedbank/callback',
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
144
|
+
"VK_SERVICE" => '3003',
|
145
|
+
"VK_VERSION" => '008',
|
146
|
+
"VK_SND_ID" => "HP",
|
147
|
+
"VK_REC_ID" => "MY_REC_ID",
|
148
|
+
"VK_NONCE" => 'pXXXlocalhostX3000df346e9e453d43cd9c3c4076030d9e54',
|
149
|
+
"VK_INFO" => 'ISIK:123456-12345;NIMI:Example User',
|
150
|
+
"VK_MAC" => "invalid signature",
|
151
|
+
"VK_ENCODING" => 'UTF-8',
|
152
|
+
"VK_LANG" => 'LAT'
|
153
153
|
|
154
154
|
expect(last_response.status).to eq(302)
|
155
155
|
expect(last_response.headers["Location"]).to eq("/auth/failure?message=invalid_response_signature_err&strategy=swedbank")
|
@@ -157,15 +157,15 @@ describe OmniAuth::Strategies::Swedbank do
|
|
157
157
|
|
158
158
|
it "detects unsupported VK_SERVICE values" do
|
159
159
|
post :'/auth/swedbank/callback',
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
160
|
+
"VK_SERVICE" => '3004',
|
161
|
+
"VK_VERSION" => '008',
|
162
|
+
"VK_SND_ID" => "HP",
|
163
|
+
"VK_REC_ID" => "MY_REC_ID",
|
164
|
+
"VK_NONCE" => 'pXXXlocalhostX3000df2afdbd66ee4c3a998b72cfd3d7d131',
|
165
|
+
"VK_INFO" => 'ISIK:123456-12345;NIMI:Example User',
|
166
|
+
"VK_MAC" => "tzGu5AxwaEMwAjkY8zh796NQ45QSEshuFiT0VnOdDN3gZPYlAcmm5jPs+j17U1rCKvz6tdKn9I8u+OUcV95+1Sa34dZ/09KrUgwDrOej/djJZ2lg5MgGLAftDsRomcCCuBppQvjdzhCvNeA2OAWPbl7Enn6HVjvb3esJY6D80bYIPm48DHDhhHbdcSwHubFeizyw9syviFsN3xVkhr5YS7W1/owXh/jeHSf8cqLVSzRyShU/JnJfevNsXDpSHbphA5Q4n5q5y0EcuA6/wW2qc2o5nKQjDDhZgxkWYKz6YpVj8zC2x/LXUkmJ+r1K0Slw2lhwEcP2tgIdThkAaT8MYQ==",
|
167
|
+
"VK_ENCODING" => 'UTF-8',
|
168
|
+
"VK_LANG" => 'LAT'
|
169
169
|
|
170
170
|
expect(last_response.status).to eq(302)
|
171
171
|
expect(last_response.headers["Location"]).to eq("/auth/failure?message=unsupported_response_service_err&strategy=swedbank")
|
@@ -173,15 +173,15 @@ describe OmniAuth::Strategies::Swedbank do
|
|
173
173
|
|
174
174
|
it "detects unsupported VK_VERSION values" do
|
175
175
|
post :'/auth/swedbank/callback',
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
176
|
+
"VK_SERVICE" => '3003',
|
177
|
+
"VK_VERSION" => '009',
|
178
|
+
"VK_SND_ID" => "HP",
|
179
|
+
"VK_REC_ID" => "MY_REC_ID",
|
180
|
+
"VK_NONCE" => 'pXXXlocalhostX300023f78258d685424584f4e859b5d480f5',
|
181
|
+
"VK_INFO" => 'ISIK:123456-12345;NIMI:Example User',
|
182
|
+
"VK_MAC" => "0KACnfCZZW2pQnFGttOXMrQRnmYQj45SwqIa5SbKhybJlP1GaXaoa5VYa+xGAnizx+YKbYQsXchXbeNIlQNrQ8/gedByzJtNFI4s4VIaU0tp7P83BjbzYfSMwvIImZvlFyVPgey8Va06fPGi+jdoUp7Dr8vwf6eAzxQhyVjEEYVR+axkAJP9+driMqTKQaxMlctWnivxf8stjI1ElmcdurndLbVnmHLTw6AichmzqUfvfXE3wh4XCVZtD+7VBPvbn4eKXif61cNfkOO/+nNap1buW8RLQirL7Eis//MmWoGSW8H5605DAAK9Ui7CNoB279Ww05pY4wsP7KZdiJ4WCA==",
|
183
|
+
"VK_ENCODING" => 'UTF-8',
|
184
|
+
"VK_LANG" => 'LAT'
|
185
185
|
|
186
186
|
expect(last_response.status).to eq(302)
|
187
187
|
expect(last_response.headers["Location"]).to eq("/auth/failure?message=unsupported_response_version_err&strategy=swedbank")
|
@@ -189,15 +189,15 @@ describe OmniAuth::Strategies::Swedbank do
|
|
189
189
|
|
190
190
|
it "detects unsupported VK_ENCODING values" do
|
191
191
|
post :'/auth/swedbank/callback',
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
192
|
+
"VK_SERVICE" => '3003',
|
193
|
+
"VK_VERSION" => '008',
|
194
|
+
"VK_SND_ID" => "HP",
|
195
|
+
"VK_REC_ID" => "MY_REC_ID",
|
196
|
+
"VK_NONCE" => "pXXXlocalhostX3000b41292810c0345a7b3770b1c807bed7a",
|
197
|
+
"VK_INFO" => 'ISIK:123456-12345;NIMI:Example User',
|
198
|
+
"VK_MAC" => "cmXyp2My7P9pTgrzqJeg7qH+NPCuyaiGNpQIrcCr6S44w0bH+Ao4WDViqytaPH2vENooVPXDSgOcBqHTg44gJ9FlrhI5StiouHVhjpCcWg+h/ERcyc8w58PjsEmdsd4BIpaGXNyhvcIKdWfNwYA1UCIrmFsPAPWfVeorNxp81E7pvY4p4zsqMF80YZ7/RdOpjrtuXJ4nYJ7d+2fXJKKmUlqArCc786DJdb/z8wVDSNA9BZxnf8EE6s//p9gzqLPAg/T9Xp/2024n2JtC6kwsWF614bn64LEZz5c8owZth6FV+2fjnzHxOiifOe+jc9SRstCLITK6Y0j+6n8auiEZ5g==",
|
199
|
+
"VK_ENCODING" => 'ASCII',
|
200
|
+
"VK_LANG" => 'LAT'
|
201
201
|
|
202
202
|
expect(last_response.status).to eq(302)
|
203
203
|
expect(last_response.headers["Location"]).to eq("/auth/failure?message=unsupported_response_encoding_err&strategy=swedbank")
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-swedbank
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jānis Kiršteins
|
9
|
+
- Kristaps Ērglis
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2014-02-04 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: omniauth
|
@@ -91,14 +92,32 @@ dependencies:
|
|
91
92
|
- - ! '>='
|
92
93
|
- !ruby/object:Gem::Version
|
93
94
|
version: '0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: i18n
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
94
111
|
description: OmniAuth strategy for Swedbank Banklink
|
95
112
|
email:
|
96
113
|
- janis@montadigital.com
|
114
|
+
- kristaps.erglis@gmail.com
|
97
115
|
executables: []
|
98
116
|
extensions: []
|
99
117
|
extra_rdoc_files: []
|
100
118
|
files:
|
101
119
|
- .gitignore
|
120
|
+
- .travis.yml
|
102
121
|
- Gemfile
|
103
122
|
- LICENSE.txt
|
104
123
|
- README.md
|
@@ -106,6 +125,8 @@ files:
|
|
106
125
|
- certs/request.private.pem
|
107
126
|
- certs/response.public.pem
|
108
127
|
- lib/omniauth-swedbank.rb
|
128
|
+
- lib/omniauth/locales/omniauth.en.yml
|
129
|
+
- lib/omniauth/locales/omniauth.lv.yml
|
109
130
|
- lib/omniauth/strategies/swedbank.rb
|
110
131
|
- lib/omniauth/swedbank.rb
|
111
132
|
- lib/omniauth/swedbank/version.rb
|
@@ -127,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
127
148
|
version: '0'
|
128
149
|
segments:
|
129
150
|
- 0
|
130
|
-
hash:
|
151
|
+
hash: 85448241469410673
|
131
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
153
|
none: false
|
133
154
|
requirements:
|
@@ -136,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
157
|
version: '0'
|
137
158
|
segments:
|
138
159
|
- 0
|
139
|
-
hash:
|
160
|
+
hash: 85448241469410673
|
140
161
|
requirements: []
|
141
162
|
rubyforge_project:
|
142
163
|
rubygems_version: 1.8.25
|