riddl 0.99.216 → 0.99.217
Sign up to get free protection for your applications and to get access to all the features.
- 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
|