riddl 0.99.216 → 0.99.217

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: 2ad39cac2c5fac6d11ae73767ba06d0f960cd896
4
- data.tar.gz: a53bd4630af8a23ff85df248e1dbc0ae7cb71db2
3
+ metadata.gz: 1e50e2c0810b8d257a762416cc885ca7f744ca30
4
+ data.tar.gz: 955760f2f27cb7b020b6b58b863ca6ede7629c71
5
5
  SHA512:
6
- metadata.gz: 6b127ff50333232a2bcbbb4fa1065a60a6b58ca3c36ba3188b2ef27c2c3976a998ba710c1e15ea2fc85482a1652a6729284bb67f1308533813995eced4fddef9
7
- data.tar.gz: b92a629b242f62c1aee5678c436e5ccdbcddb66d0bf0a899615463b5d549adef1eb844de88061552392b526aa36c924f813d4293dcb492baf656bc07ef51fa33
6
+ metadata.gz: b594d20e57e17c71fa73f74d30f654fcddf7b4a89ccbee93b512b79a18fb17c93bcaf819ea9ec160456883140f1c9690ee42813a3a8da8eea14b81f319ff2c69
7
+ data.tar.gz: 6b2f13d927ff84be0fc26c4ded893db0aff9e40005bd8b7bc85b466cd44474b7be2fb87fc5e387109634b256250edec9f183da398c5d6628512d07bc48e5a18c
@@ -40,7 +40,9 @@ module Riddl
40
40
  end
41
41
 
42
42
  def write
43
- File.write(@tfile, JSON::pretty_generate(@tokens)) rescue {}
43
+ EM.defer {
44
+ File.write(@tfile, JSON::pretty_generate(@tokens)) rescue {}
45
+ }
44
46
  @changed = changed
45
47
  end
46
48
  private :write
@@ -133,4 +135,4 @@ module Riddl
133
135
  end
134
136
  end
135
137
  end
136
- end
138
+ end
@@ -72,7 +72,6 @@ module Riddl
72
72
  raise "client_id, client_secret or token storage not available."
73
73
  end
74
74
  Proc.new do
75
- run Riddl::Utils::OAuth2::UnivieBearer::CheckAuth, client_id, client_secret, access_tokens if get
76
75
  on resource 'verify' do
77
76
  run VerifyIdentity, access_tokens, refresh_tokens, client_id, client_secret if post 'verify_in'
78
77
  end
@@ -131,6 +130,42 @@ module Riddl
131
130
  refresh_tokens.delete_by_token token
132
131
  end
133
132
  end
133
+
134
+ class RefreshToken < Riddl::Implementation
135
+ def response
136
+ refresh_token = @p[1].value
137
+ access_tokens = @a[0]
138
+ refresh_tokens = @a[1]
139
+ client_id = @a[2]
140
+ client_secret = @a[3]
141
+
142
+ token, _ = refresh_token.split '.'
143
+ token_data = JSON::parse(Base64::urlsafe_decode64 token)
144
+
145
+ if token_data['iss'] != client_id
146
+ @status = 401
147
+ return Riddl::Parameter::Complex.new('data', 'application/json', {
148
+ :error => 'Token must be refreshed by issuer.'
149
+ }.to_json)
150
+ elsif refresh_tokens[refresh_token].nil? || token_data['exp'] <= Time.now.to_i
151
+ @status = 403
152
+ puts "i dont know #{refresh_token}", "#{refresh_tokens[refresh_token]}"
153
+ return Riddl::Parameter::Complex.new('data', 'application/json', {
154
+ :error => 'Invalid refresh token.'
155
+ }.to_json)
156
+ end
157
+
158
+ old_token = refresh_tokens[refresh_token]
159
+ user = access_tokens.delete old_token
160
+
161
+ token = OAuth2Fed::make_access_token(client_id, client_id + ':' + client_secret)
162
+
163
+ refresh_tokens[refresh_token] = token
164
+ access_tokens[token] = user
165
+
166
+ Riddl::Parameter::Complex.new('data', 'application/json', { :token => token }.to_json)
167
+ end
168
+ end
134
169
  end
135
170
 
136
171
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "riddl"
3
- s.version = "0.99.216"
3
+ s.version = "0.99.217"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3"
6
6
  s.summary = "restful interface description and declaration language: tools and client/server libs"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riddl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.99.216
4
+ version: 0.99.217
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen 'eTM' Mangler
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: tools
12
12
  cert_chain: []
13
- date: 2016-04-28 00:00:00.000000000 Z
13
+ date: 2016-04-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: xml-smart