ripple_token 0.2.1 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ripple_token/client.rb +1 -1
- data/lib/ripple_token/configuration.rb +2 -1
- data/lib/ripple_token/middleware.rb +12 -6
- data/lib/ripple_token/token.rb +9 -11
- data/lib/ripple_token/version.rb +1 -1
- data/ripple_token.gemspec +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9340efe777dcdb596e731768b6ca0d0781db3d74e162a1bc138b8d1d555c26ed
|
4
|
+
data.tar.gz: 33f413b201c9fc280d4a773f819374121b57b6591f7d347619e263f46278d785
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01f1df20b2e3830a7462f1e416548abd4c6890be3755e1399092676917ea133d8cc832685214d980c01f1f2be0daaee1874d57414aa3c7ccbf895f99bfd4a54e
|
7
|
+
data.tar.gz: 7e612334e9b018e567f085586f1290a2c316d0636b3e7a55f7c4e6759d39892a5bb11dc3135996eeb20ddacda6c26a5e9983fe4167911d9942bfc8e10487f402
|
data/lib/ripple_token/client.rb
CHANGED
@@ -15,19 +15,25 @@ module RippleToken
|
|
15
15
|
path = env['PATH_INFO']
|
16
16
|
|
17
17
|
encoded_token = env['HTTP_AUTHORIZATION']&.gsub(/^Bearer /, '') || ''
|
18
|
-
unless token.public_path? method, path
|
19
|
-
raise MissingTokenError if encoded_token.nil? || encoded_token&.empty?
|
20
|
-
end
|
21
|
-
decoded_token = token.decode(encoded_token)
|
22
18
|
|
23
|
-
|
19
|
+
Client.logger.debug("Received #{encoded_token} token")
|
20
|
+
|
21
|
+
if encoded_token.nil? || encoded_token&.empty?
|
22
|
+
Client.logger.info('No token provided in request')
|
23
|
+
raise MissingTokenError unless token.public_path? method, path
|
24
|
+
else
|
25
|
+
store_user_details(encoded_token, env)
|
26
|
+
end
|
24
27
|
|
25
28
|
@app.call(env)
|
26
29
|
end
|
27
30
|
|
28
31
|
private
|
29
32
|
|
30
|
-
def store_user_details(
|
33
|
+
def store_user_details(encoded_token, env)
|
34
|
+
env['keycloak.raw_token'] = encoded_token
|
35
|
+
decoded_token = token.decode(encoded_token)
|
36
|
+
|
31
37
|
env['keycloak.token'] = decoded_token
|
32
38
|
env['keycloak.user_id'] = decoded_token['sub']
|
33
39
|
env['keycloak.user_roles'] = decoded_token['realm_access']['roles']
|
data/lib/ripple_token/token.rb
CHANGED
@@ -7,22 +7,20 @@ module RippleToken
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def decode(token)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
raise ExpiredTokenError, e.message
|
19
|
-
end
|
10
|
+
decoded_token = JWT.decode(token, public_key, true, { algorithm: 'RS256' })[0]
|
11
|
+
raise ExpiredTokenError if expired? decoded_token
|
12
|
+
|
13
|
+
decoded_token
|
14
|
+
rescue JWT::DecodeError => e
|
15
|
+
raise TokenDecodeError, e.message
|
16
|
+
rescue JWT::ExpiredSignature => e
|
17
|
+
raise ExpiredTokenError, e.message
|
20
18
|
end
|
21
19
|
|
22
20
|
def public_path?(method, path)
|
23
21
|
return false if Client.public_paths.nil? || Client.public_paths.empty?
|
24
22
|
|
25
|
-
return true if Client.public_paths[method]&.
|
23
|
+
return true if Client.public_paths[method]&.select { |p| path[p] }&.any?
|
26
24
|
|
27
25
|
false
|
28
26
|
end
|
data/lib/ripple_token/version.rb
CHANGED
data/ripple_token.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
26
|
spec.require_paths = ['lib']
|
27
27
|
|
28
|
-
spec.add_dependency('activesupport', '6.0
|
28
|
+
spec.add_dependency('activesupport', '~>6.0')
|
29
29
|
spec.add_dependency('httparty', '0.18.1')
|
30
30
|
spec.add_dependency('jwt', '2.2.1')
|
31
31
|
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ripple_token
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hex Event Solutions Limited
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 6.0
|
19
|
+
version: '6.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 6.0
|
26
|
+
version: '6.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: httparty
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|