keycloak-api-rails 0.6 → 0.7

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: 1fb2c6f355e3fc27fbb0110609f34fc4d17e34f0
4
- data.tar.gz: 3f338ecbe4d68ecccf65904434399394b7f51a80
3
+ metadata.gz: b298ef611dd538dad42613e80be8096b4b98ad2d
4
+ data.tar.gz: fd2db99fb54de4316c05df4917e1ff8397cb51c9
5
5
  SHA512:
6
- metadata.gz: 869df876da34f6cbb957a7c12f88975efc5147ddb4282813b30997aa5e9b229045f5e3fee056429a6990193909b3e864893d69787f67e09ade924816f5696b96
7
- data.tar.gz: 1a1e5f069ad76e2eb83653bddff7da10b019097f06277f91793b6839e2ccf3fe91e1df3ff25a5a12caf32fdc4668570e853a964a64fee0d85c4c1eb8aabd009e
6
+ metadata.gz: c1d734c4ac0143450b9705c0ab30db0ed0607a593e8cb5f0ccef16705f08b5dbd0b74b3814d0aacb51016d43b348e9e4242ae18814fd90dad0d388a6a032fe05
7
+ data.tar.gz: 0c475bcd1964c1f519d35cba8dfc4be920d10e6e1bce8d5c13eaa64ea5728128399b8e3df9374cd15afc5d6080de1565627b4f4f536d741c76380c5d4be6a9e1
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .bundle/
2
2
  log/*.log
3
- .byebug_history
3
+ .byebug_history
4
+ *.gem
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- keycloak-api-rails (0.6)
4
+ keycloak-api-rails (0.7)
5
5
  json-jwt (~> 1.8, >= 1.8.3)
6
6
  rails (>= 4.2)
7
7
 
@@ -46,7 +46,7 @@ GEM
46
46
  minitest (~> 5.1)
47
47
  tzinfo (~> 1.1)
48
48
  arel (8.0.0)
49
- bindata (2.4.1)
49
+ bindata (2.4.2)
50
50
  builder (3.2.3)
51
51
  byebug (9.1.0)
52
52
  concurrent-ruby (1.0.5)
@@ -55,7 +55,7 @@ GEM
55
55
  erubi (1.7.0)
56
56
  globalid (0.4.1)
57
57
  activesupport (>= 4.2.0)
58
- i18n (0.9.1)
58
+ i18n (0.9.3)
59
59
  concurrent-ruby (~> 1.0)
60
60
  json-jwt (1.8.3)
61
61
  activesupport
@@ -70,11 +70,11 @@ GEM
70
70
  method_source (0.9.0)
71
71
  mini_mime (1.0.0)
72
72
  mini_portile2 (2.3.0)
73
- minitest (5.11.1)
73
+ minitest (5.11.3)
74
74
  nio4r (2.2.0)
75
- nokogiri (1.8.1)
75
+ nokogiri (1.8.2)
76
76
  mini_portile2 (~> 2.3.0)
77
- rack (2.0.3)
77
+ rack (2.0.4)
78
78
  rack-test (0.8.2)
79
79
  rack (>= 1.0, < 3)
80
80
  rails (5.1.4)
@@ -125,7 +125,7 @@ GEM
125
125
  thor (0.20.0)
126
126
  thread_safe (0.3.6)
127
127
  timecop (0.9.1)
128
- tzinfo (1.2.4)
128
+ tzinfo (1.2.5)
129
129
  thread_safe (~> 0.1)
130
130
  url_safe_base64 (0.2.2)
131
131
  websocket-driver (0.6.5)
data/README.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  This gem aims at validates Keycloak JWT token in Ruby On Rails APIs.
4
4
 
5
+ ## Install
6
+
7
+ ```ruby
8
+ gem "keycloak-api-rails", "0.7"
9
+ ```
10
+
5
11
  ## Token validation
6
12
 
7
13
  Tokens send (through query strings or Authorization headers) to this Railtie Middleware are validated against a Keycloak public key. This public key is downloaded every day by default (this interval can be changed through `public_key_cache_ttl`).
@@ -1,9 +1,11 @@
1
1
  module Keycloak
2
2
  class Helper
3
3
 
4
- CURRENT_USER_ID_KEY = "keycloak:keycloak_id"
5
- ROLES_KEY = "keycloak:roles"
6
- QUERY_STRING_TOKEN_KEY = "authorizationToken"
4
+ CURRENT_USER_ID_KEY = "keycloak:keycloak_id"
5
+ CURRENT_USER_EMAIL_KEY = "keycloak:email"
6
+ CURRENT_USER_LOCALE_KEY = "keycloak:locale"
7
+ ROLES_KEY = "keycloak:roles"
8
+ QUERY_STRING_TOKEN_KEY = "authorizationToken"
7
9
 
8
10
  def self.current_user_id(env)
9
11
  env[CURRENT_USER_ID_KEY]
@@ -13,6 +15,22 @@ module Keycloak
13
15
  env[CURRENT_USER_ID_KEY] = token["sub"]
14
16
  end
15
17
 
18
+ def self.current_user_email(env)
19
+ env[CURRENT_USER_EMAIL_KEY]
20
+ end
21
+
22
+ def self.assign_current_user_email(env, token)
23
+ env[CURRENT_USER_EMAIL_KEY] = token["email"]
24
+ end
25
+
26
+ def self.current_user_locale(env)
27
+ env[CURRENT_USER_LOCALE_KEY]
28
+ end
29
+
30
+ def self.assign_current_user_locale(env, token)
31
+ env[CURRENT_USER_LOCALE_KEY] = token["locale"]
32
+ end
33
+
16
34
  def self.current_user_roles(env)
17
35
  env[ROLES_KEY]
18
36
  end
@@ -30,6 +30,8 @@ module Keycloak
30
30
 
31
31
  def authentication_succeeded(env, decoded_token)
32
32
  Helper.assign_current_user_id(env, decoded_token)
33
+ Helper.assign_current_user_email(env, decoded_token)
34
+ Helper.assign_current_user_locale(env, decoded_token)
33
35
  Helper.assign_realm_roles(env, decoded_token)
34
36
  @app.call(env)
35
37
  end
@@ -1,3 +1,3 @@
1
1
  module Keycloak
2
- VERSION = "0.6"
2
+ VERSION = "0.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keycloak-api-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.6'
4
+ version: '0.7'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorent Lempereur
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-17 00:00:00.000000000 Z
11
+ date: 2018-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails