otp-jwt 0.2.3 → 0.2.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 87c3f2de0234d1da0b76d2e98fdec783cc7d5fb6
4
- data.tar.gz: fe6cff9c4f3feb032c7690932dd595cc14b35f05
3
+ metadata.gz: 5a6047b41e5b59f65c9a0ab0b138798ba611a113
4
+ data.tar.gz: 5b157ecb5af5abebcd324f3b18698279af02d050
5
5
  SHA512:
6
- metadata.gz: b913eb0bc73388ea94966599018dc0b41c4b99572125d5cccf542d9f0a8734553b4b84b89ee2e741fa2c7eee456cccb9906cf1c7bcd6eb1f99879df0ebbd6bd8
7
- data.tar.gz: ca553bd555eb871ae2312cae64cdfb7243fd7c61a42d075430fe42251c2759b379d4b714c81f07384ccc5ff1ee98a774a44e6dc42e1f05917ec3d124ea7ca3eb
6
+ metadata.gz: 3c9ee97ec926b861d0599462def570ae799ac65a3f59040725b376359de451817680b1a538759126fe698895157813b15a911738c4976dd801cce5d17aa0a562
7
+ data.tar.gz: d3fede4d63a6121e34fdcad1b8d3c48cd85088e99bfa94b001cf94895ea6574e66e061db7e442a9b4904eb079c7457cd0398d897eaf0085b0d29b50cb3428655
@@ -2,7 +2,8 @@ workflow "Tests" {
2
2
  on = "push"
3
3
  resolves = [
4
4
  "rspec-ruby2.6_rails4",
5
- "rspec-ruby2.6_rails5"
5
+ "rspec-ruby2.6_rails5",
6
+ "rspec-ruby2.6_rails6"
6
7
  ]
7
8
  }
8
9
 
@@ -10,10 +11,11 @@ action "rspec-ruby2.6_rails4" {
10
11
  uses = "docker://ruby:2.6-alpine"
11
12
  env = {
12
13
  RAILS_VERSION = "~> 4"
14
+ SQLITE3_VERSION = "~> 1.3.6"
13
15
  }
14
16
  args = [
15
17
  "sh", "-c",
16
- "apk add -U git build-base sqlite-dev && rm Gemfile.lock && bundle install && rake"
18
+ "apk add -U git build-base sqlite-dev && bundle install && rake"
17
19
  ]
18
20
  }
19
21
 
@@ -25,6 +27,18 @@ action "rspec-ruby2.6_rails5" {
25
27
  }
26
28
  args = [
27
29
  "sh", "-c",
28
- "apk add -U git build-base sqlite-dev && rm Gemfile.lock && bundle install && rake"
30
+ "apk add -U git build-base sqlite-dev && bundle install && rake"
31
+ ]
32
+ }
33
+
34
+ action "rspec-ruby2.6_rails6" {
35
+ uses = "docker://ruby:2.6-alpine"
36
+ needs = ["rspec-ruby2.6_rails5"]
37
+ env = {
38
+ RAILS_VERSION = "~> 6.0.0.rc1"
39
+ }
40
+ args = [
41
+ "sh", "-c",
42
+ "apk add -U git build-base sqlite-dev && bundle install && rake"
29
43
  ]
30
44
  }
data/.gitignore CHANGED
@@ -1,2 +1,4 @@
1
1
  coverage
2
2
  pkg
3
+ *.lock
4
+ tmp
data/Gemfile CHANGED
@@ -4,3 +4,4 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'rails', ENV['RAILS_VERSION']
7
+ gem 'tzinfo-data'
@@ -14,7 +14,16 @@ module OTP
14
14
  # @return [ActiveRecord::Base] model
15
15
  def from_jwt(token, claim_name = 'sub')
16
16
  OTP::JWT::Token.decode(token) do |payload|
17
- self.find_by(id: payload[claim_name])
17
+ val = payload[claim_name]
18
+ pk_col = self.column_for_attribute(self.primary_key)
19
+
20
+ # Arel casts the values to the primary key type, which means
21
+ # that an UUID will become an integer...
22
+ casted_val = self.connection.type_cast(val, pk_col)
23
+
24
+ return if casted_val.to_s != val.to_s.strip
25
+
26
+ self.find_by(self.primary_key => val)
18
27
  end
19
28
  end
20
29
  end
@@ -24,8 +33,10 @@ module OTP
24
33
  # @param claims [Hash] extra claims to be included
25
34
  # @return [ActiveRecord::Base] model
26
35
  def to_jwt(claims = nil)
27
- claims ||= {}
28
- OTP::JWT::Token.sign(sub: self.id, **claims)
36
+ OTP::JWT::Token.sign(
37
+ sub: self.send(self.class.primary_key),
38
+ **(claims || {})
39
+ )
29
40
  end
30
41
  end
31
42
  end
@@ -4,16 +4,23 @@ module OTP
4
4
  module JWT
5
5
  # Helpers to help you test the [JWT] requests.
6
6
  module TestHelpers
7
+ # Helper provides JSON content type headers
8
+ #
9
+ # @return [Hash] the relevant content type &co
10
+ def json_headers
11
+ { 'Content-Type': Mime[:json].to_s }
12
+ end
13
+
7
14
  # Helper to handle authentication requests easier
8
15
  #
9
16
  # @return [Hash] the authorization headers
10
17
  def jwt_auth_header(entity_or_subject)
11
- return {} unless entity_or_subject.present?
18
+ return json_headers unless entity_or_subject.present?
12
19
 
13
20
  token = entity_or_subject.try(:to_jwt)
14
21
  token ||= OTP::JWT::Token.sign(sub: entity_or_subject)
15
22
 
16
- { 'Authorization': "Bearer #{token}" }
23
+ { 'Authorization': "Bearer #{token}" }.merge(json_headers)
17
24
  end
18
25
 
19
26
  # Parses and returns a deserialized JSON
@@ -1,5 +1,5 @@
1
1
  module OTP
2
2
  module JWT
3
- VERSION = '0.2.3'
3
+ VERSION = '0.2.4'
4
4
  end
5
5
  end
@@ -31,6 +31,6 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency 'rubocop-rails_config'
32
32
  spec.add_development_dependency 'rubocop-rspec'
33
33
  spec.add_development_dependency 'simplecov'
34
- spec.add_development_dependency 'sqlite3', '~> 1.3.6'
34
+ spec.add_development_dependency 'sqlite3', ENV['SQLITE3_VERSION']
35
35
  spec.add_development_dependency 'yardstick'
36
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: otp-jwt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stas Suscov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-18 00:00:00.000000000 Z
11
+ date: 2019-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -168,16 +168,16 @@ dependencies:
168
168
  name: sqlite3
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - "~>"
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: 1.3.6
173
+ version: '0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - "~>"
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: 1.3.6
180
+ version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: yardstick
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -205,7 +205,6 @@ files:
205
205
  - ".rubocop.yml"
206
206
  - ".yardstick.yml"
207
207
  - Gemfile
208
- - Gemfile.lock
209
208
  - README.md
210
209
  - Rakefile
211
210
  - lib/otp.rb
@@ -1,197 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- otp-jwt (0.2.3)
5
- activesupport
6
- jwt (~> 2.2.0.pre.beta.0)
7
- rotp (~> 4.1)
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- actioncable (5.2.3)
13
- actionpack (= 5.2.3)
14
- nio4r (~> 2.0)
15
- websocket-driver (>= 0.6.1)
16
- actionmailer (5.2.3)
17
- actionpack (= 5.2.3)
18
- actionview (= 5.2.3)
19
- activejob (= 5.2.3)
20
- mail (~> 2.5, >= 2.5.4)
21
- rails-dom-testing (~> 2.0)
22
- actionpack (5.2.3)
23
- actionview (= 5.2.3)
24
- activesupport (= 5.2.3)
25
- rack (~> 2.0)
26
- rack-test (>= 0.6.3)
27
- rails-dom-testing (~> 2.0)
28
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
- actionview (5.2.3)
30
- activesupport (= 5.2.3)
31
- builder (~> 3.1)
32
- erubi (~> 1.4)
33
- rails-dom-testing (~> 2.0)
34
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
35
- activejob (5.2.3)
36
- activesupport (= 5.2.3)
37
- globalid (>= 0.3.6)
38
- activemodel (5.2.3)
39
- activesupport (= 5.2.3)
40
- activerecord (5.2.3)
41
- activemodel (= 5.2.3)
42
- activesupport (= 5.2.3)
43
- arel (>= 9.0)
44
- activestorage (5.2.3)
45
- actionpack (= 5.2.3)
46
- activerecord (= 5.2.3)
47
- marcel (~> 0.3.1)
48
- activesupport (5.2.3)
49
- concurrent-ruby (~> 1.0, >= 1.0.2)
50
- i18n (>= 0.7, < 2)
51
- minitest (~> 5.1)
52
- tzinfo (~> 1.1)
53
- addressable (2.6.0)
54
- public_suffix (>= 2.0.2, < 4.0)
55
- arel (9.0.0)
56
- ast (2.4.0)
57
- builder (3.2.3)
58
- concurrent-ruby (1.1.5)
59
- crass (1.0.4)
60
- diff-lcs (1.3)
61
- docile (1.3.1)
62
- erubi (1.8.0)
63
- ffaker (2.10.0)
64
- globalid (0.4.2)
65
- activesupport (>= 4.2.0)
66
- i18n (1.6.0)
67
- concurrent-ruby (~> 1.0)
68
- jaro_winkler (1.5.2)
69
- json (2.2.0)
70
- jwt (2.2.0.pre.beta.0)
71
- loofah (2.2.3)
72
- crass (~> 1.0.2)
73
- nokogiri (>= 1.5.9)
74
- mail (2.7.1)
75
- mini_mime (>= 0.1.1)
76
- marcel (0.3.3)
77
- mimemagic (~> 0.3.2)
78
- method_source (0.9.2)
79
- mimemagic (0.3.3)
80
- mini_mime (1.0.1)
81
- mini_portile2 (2.4.0)
82
- minitest (5.11.3)
83
- nio4r (2.3.1)
84
- nokogiri (1.10.2)
85
- mini_portile2 (~> 2.4.0)
86
- parallel (1.16.2)
87
- parser (2.6.2.0)
88
- ast (~> 2.4.0)
89
- psych (3.1.0)
90
- public_suffix (3.0.3)
91
- rack (2.0.6)
92
- rack-test (1.1.0)
93
- rack (>= 1.0, < 3)
94
- rails (5.2.3)
95
- actioncable (= 5.2.3)
96
- actionmailer (= 5.2.3)
97
- actionpack (= 5.2.3)
98
- actionview (= 5.2.3)
99
- activejob (= 5.2.3)
100
- activemodel (= 5.2.3)
101
- activerecord (= 5.2.3)
102
- activestorage (= 5.2.3)
103
- activesupport (= 5.2.3)
104
- bundler (>= 1.3.0)
105
- railties (= 5.2.3)
106
- sprockets-rails (>= 2.0.0)
107
- rails-dom-testing (2.0.3)
108
- activesupport (>= 4.2.0)
109
- nokogiri (>= 1.6)
110
- rails-html-sanitizer (1.0.4)
111
- loofah (~> 2.2, >= 2.2.2)
112
- railties (5.2.3)
113
- actionpack (= 5.2.3)
114
- activesupport (= 5.2.3)
115
- method_source
116
- rake (>= 0.8.7)
117
- thor (>= 0.19.0, < 2.0)
118
- rainbow (3.0.0)
119
- rake (12.3.2)
120
- rotp (4.1.0)
121
- addressable (~> 2.5)
122
- rspec-core (3.8.0)
123
- rspec-support (~> 3.8.0)
124
- rspec-expectations (3.8.2)
125
- diff-lcs (>= 1.2.0, < 2.0)
126
- rspec-support (~> 3.8.0)
127
- rspec-mocks (3.8.0)
128
- diff-lcs (>= 1.2.0, < 2.0)
129
- rspec-support (~> 3.8.0)
130
- rspec-rails (3.8.2)
131
- actionpack (>= 3.0)
132
- activesupport (>= 3.0)
133
- railties (>= 3.0)
134
- rspec-core (~> 3.8.0)
135
- rspec-expectations (~> 3.8.0)
136
- rspec-mocks (~> 3.8.0)
137
- rspec-support (~> 3.8.0)
138
- rspec-support (3.8.0)
139
- rubocop (0.66.0)
140
- jaro_winkler (~> 1.5.1)
141
- parallel (~> 1.10)
142
- parser (>= 2.5, != 2.5.1.1)
143
- psych (>= 3.1.0)
144
- rainbow (>= 2.2.2, < 4.0)
145
- ruby-progressbar (~> 1.7)
146
- unicode-display_width (>= 1.4.0, < 1.6)
147
- rubocop-performance (1.0.0)
148
- rubocop (>= 0.58.0)
149
- rubocop-rails_config (0.4.4)
150
- railties (>= 3.0)
151
- rubocop (~> 0.58)
152
- rubocop-rspec (1.32.0)
153
- rubocop (>= 0.60.0)
154
- ruby-progressbar (1.10.0)
155
- simplecov (0.16.1)
156
- docile (~> 1.1)
157
- json (>= 1.8, < 3)
158
- simplecov-html (~> 0.10.0)
159
- simplecov-html (0.10.2)
160
- sprockets (3.7.2)
161
- concurrent-ruby (~> 1.0)
162
- rack (> 1, < 3)
163
- sprockets-rails (3.2.1)
164
- actionpack (>= 4.0)
165
- activesupport (>= 4.0)
166
- sprockets (>= 3.0.0)
167
- sqlite3 (1.3.13)
168
- thor (0.20.3)
169
- thread_safe (0.3.6)
170
- tzinfo (1.2.5)
171
- thread_safe (~> 0.1)
172
- unicode-display_width (1.5.0)
173
- websocket-driver (0.7.0)
174
- websocket-extensions (>= 0.1.0)
175
- websocket-extensions (0.1.3)
176
- yard (0.9.18)
177
- yardstick (0.9.9)
178
- yard (~> 0.8, >= 0.8.7.2)
179
-
180
- PLATFORMS
181
- ruby
182
-
183
- DEPENDENCIES
184
- bundler
185
- ffaker
186
- otp-jwt!
187
- rails
188
- rspec-rails
189
- rubocop-performance
190
- rubocop-rails_config
191
- rubocop-rspec
192
- simplecov
193
- sqlite3 (~> 1.3.6)
194
- yardstick
195
-
196
- BUNDLED WITH
197
- 1.17.3