json-jwt 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of json-jwt might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f114f8c73a49561c455f752c90361378e34691ff
4
- data.tar.gz: 65e2c0a8b3f0054e81b28dd3d45bc3bd7d4354ba
3
+ metadata.gz: a67d827d688275c320f167da344b09c410389ae9
4
+ data.tar.gz: 86de0fee6cdab321509cb679c977c5c3654517c9
5
5
  SHA512:
6
- metadata.gz: 47bda5992fac3eebb1403df68ed0f4914ba0ecd61a0c0b4d3d100cef9856a485c0e18f82ebded2774111e2e50ca3fddbe61eb54f198d1ce50fcbd84a1fea9281
7
- data.tar.gz: da1a37510a59a5910e9e5a39fd0961c72d062dfa4fe57a6b37e4f07339aa86cd2859b0c0065b4ed5dcad56ddc4cdcaa2827b29d19939854e5492fcfae3bd36f6
6
+ metadata.gz: 0fd02d0b56b9fe92afc6300d8a7074a71fdf346264af52488b389b685100342fac4eea8485c5d4e0be68b8752049f6089a8b5ba05509d9f33d4116663705c8ed
7
+ data.tar.gz: ed5ee926666db5e52ca85ed60973321cf5042366c9484aa12e4c8cd37a6d3503a2c514b7699f99e6d1828e10202c2e1ff02f5d529dd9b3be880a6c24b3487bad
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.3
1
+ 1.1.0
data/lib/json/jws.rb CHANGED
@@ -21,6 +21,27 @@ module JSON
21
21
  raise VerificationFailed
22
22
  end
23
23
 
24
+ def as_json(options = {})
25
+ case options[:syntax]
26
+ when :general
27
+ {
28
+ payload: UrlSafeBase64.encode64(self.to_json),
29
+ signatures: {
30
+ protected: UrlSafeBase64.encode64(header.to_json),
31
+ signature: UrlSafeBase64.encode64(signature.to_s)
32
+ }
33
+ }
34
+ when :flattened
35
+ {
36
+ protected: UrlSafeBase64.encode64(header.to_json),
37
+ payload: UrlSafeBase64.encode64(self.to_json),
38
+ signature: UrlSafeBase64.encode64(signature.to_s)
39
+ }
40
+ else
41
+ super
42
+ end
43
+ end
44
+
24
45
  private
25
46
 
26
47
  def digest
@@ -158,4 +158,61 @@ describe JSON::JWS do
158
158
  end
159
159
  end
160
160
  end
161
+
162
+ describe 'to_json' do
163
+ let(:alg) { :RS256 }
164
+ let(:private_key_or_secret) { private_key }
165
+
166
+ context 'as default' do
167
+ it 'should JSONize payload' do
168
+ jws.to_json.should == claims.to_json
169
+ end
170
+ end
171
+
172
+ context 'when syntax option given' do
173
+ context 'when general' do
174
+ it 'should return General JWS JSON Serialization' do
175
+ signed.to_json(syntax: :general).should == {
176
+ payload: UrlSafeBase64.encode64(claims.to_json),
177
+ signatures: {
178
+ protected: UrlSafeBase64.encode64(signed.header.to_json),
179
+ signature: UrlSafeBase64.encode64(signed.signature)
180
+ }
181
+ }.to_json
182
+ end
183
+
184
+ context 'when not signed yet' do
185
+ it 'should not fail' do
186
+ jws.to_json(syntax: :general).should == {
187
+ payload: UrlSafeBase64.encode64(claims.to_json),
188
+ signatures: {
189
+ protected: UrlSafeBase64.encode64(jws.header.to_json),
190
+ signature: UrlSafeBase64.encode64('')
191
+ }
192
+ }.to_json
193
+ end
194
+ end
195
+ end
196
+
197
+ context 'when flattened' do
198
+ it 'should return Flattened JWS JSON Serialization' do
199
+ signed.to_json(syntax: :flattened).should == {
200
+ protected: UrlSafeBase64.encode64(signed.header.to_json),
201
+ payload: UrlSafeBase64.encode64(claims.to_json),
202
+ signature: UrlSafeBase64.encode64(signed.signature)
203
+ }.to_json
204
+ end
205
+
206
+ context 'when not signed yet' do
207
+ it 'should not fail' do
208
+ jws.to_json(syntax: :flattened).should == {
209
+ protected: UrlSafeBase64.encode64(jws.header.to_json),
210
+ payload: UrlSafeBase64.encode64(claims.to_json),
211
+ signature: UrlSafeBase64.encode64('')
212
+ }.to_json
213
+ end
214
+ end
215
+ end
216
+ end
217
+ end
161
218
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-jwt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nov matake
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-14 00:00:00.000000000 Z
11
+ date: 2015-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json