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 +4 -4
- data/lib/ruby/riddl/utils/oauth2-helper.rb +4 -2
- data/lib/ruby/riddl/utils/oauth2-univie.rb +36 -1
- data/riddl.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e50e2c0810b8d257a762416cc885ca7f744ca30
|
4
|
+
data.tar.gz: 955760f2f27cb7b020b6b58b863ca6ede7629c71
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
data/riddl.gemspec
CHANGED
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.
|
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-
|
13
|
+
date: 2016-04-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: xml-smart
|