mn_utils_gem 1.14.1 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9dd7f0e45d09dbe91d637ca39b4803c5ace35bf1a291bb0a8f24d3eab25ec180
4
- data.tar.gz: 2ceebf3260f7d4583a51748dc6f43d261fc71ec83252a8a7491048ef599510f1
3
+ metadata.gz: 6e7292a8e70611c5bf7971d203841260cc3b2d7a84f87f249a82c0caac84175a
4
+ data.tar.gz: f6de5171379b867c8f1d002e61a1eb4d4c705437dcdd179c8d98c5e8b9485f82
5
5
  SHA512:
6
- metadata.gz: 6138e24185e22071e28e1df512ba08be07b36380d1fa67d8a2b549e52d5e6bd5a16a16d14f47177401ed41bc0fb8ebdcae60c06f4fa33d6d3420b2e01d4d560b
7
- data.tar.gz: eef8b9f1a42ddc7e0b30796ae0b312e33828c3f83f7fc39d23d87d34d070a2745c5a219b27b3d307b089e7bb1eab83a5fc91edab946b4d352f6cfd8b561340f0
6
+ metadata.gz: e04c99269319b133fdd37462a02933123097b111f8543ad0d9a2184d209512cc8382e80f93b2e879501816fbd37e366751817be73e13803954a20b62b83122a4
7
+ data.tar.gz: bb1619401461f39a203bb075a481117dc137fe98c5430a72c8a0d19aa309715c190680f8fd381d9086532da4680af4e7df5803fb381061e7954c9edc20aebfe8
@@ -14,6 +14,10 @@ module MnUtilsAuth
14
14
  end
15
15
 
16
16
  def get_sso_user_id(cookies)
17
+ raise ArgumentError, "ENV['MN_REDIS_URL'] is required" \
18
+ unless ENV.key? 'MN_REDIS_URL'
19
+ raise ArgumentError, "ENV['COOKIE_DOMAIN'] is required" \
20
+ unless ENV.key? 'COOKIE_DOMAIN'
17
21
  parsed = get_sso cookies
18
22
  return nil if parsed.nil?
19
23
  parsed[:user_id]
@@ -23,9 +27,13 @@ module MnUtilsAuth
23
27
  end
24
28
 
25
29
  def get_sso(cookies)
30
+ raise ArgumentError, "ENV['MN_REDIS_URL'] is required" \
31
+ unless ENV.key? 'MN_REDIS_URL'
32
+ raise ArgumentError, "ENV['COOKIE_DOMAIN'] is required" \
33
+ unless ENV.key? 'COOKIE_DOMAIN'
26
34
  return RequestStore.store[:sso] if RequestStore.store[:sso]
27
35
  return nil if cookies.nil? || cookies[SSO_COOKIE_NAME].nil? || redis_server.nil?
28
- json = redis_server.get(cookies[SSO_COOKIE_NAME].to_s)
36
+ json = redis_server.get(cookies[SSO_COOKIE_NAME])
29
37
  return nil if json.nil?
30
38
  parsed = JSON.parse(json, symbolize_names: true)
31
39
  return nil unless parsed.is_a?(Hash)
@@ -36,21 +44,32 @@ module MnUtilsAuth
36
44
  nil
37
45
  end
38
46
 
39
- def set_sso(cookies, user_id, other_attributes = {})
40
- @logger.debug "in set_sso 1"
41
- return if cookies.nil? || user_id.blank? || redis_server.nil? || RequestStore.store[:sso]
42
- @logger.debug "in set_sso 2"
47
+ def set_sso(cookies, user_id, persistent, other_attributes = {})
48
+ raise ArgumentError, "ENV['MN_REDIS_URL'] is required" \
49
+ unless ENV.key? 'MN_REDIS_URL'
50
+ raise ArgumentError, "ENV['COOKIE_DOMAIN'] is required" \
51
+ unless ENV.key? 'COOKIE_DOMAIN'
52
+ return if cookies.nil? || user_id.blank? || RequestStore.store[:sso] || redis_server.nil?
53
+ value = other_attributes.reverse_merge({ user_id: user_id })
54
+ redis_ttl = (persistent) ? 1.year.to_i : 1.day.to_i
43
55
  if cookies[SSO_COOKIE_NAME].nil?
44
- @logger.debug "in set_sso 3 #{cookies[SSO_COOKIE_NAME]}"
45
- cookie = set_sso_cookie cookies
46
- @logger.debug "in set_sso 4 #{cookie}"
47
- value = other_attributes.reverse_merge({ user_id: user_id })
48
- redis_server.set(cookie, JSON[value])
56
+ cookie = set_sso_cookie cookies, persistent
57
+ redis_server.set(cookie, JSON[value], ex: redis_ttl)
49
58
  RequestStore.store[:sso] = value
59
+ else
60
+ if !redis_server.get(cookies[SSO_COOKIE_NAME])
61
+ cookie = set_sso_cookie cookies, persistent
62
+ redis_server.set(cookie, JSON[value], ex: redis_ttl)
63
+ RequestStore.store[:sso] = value
64
+ end
50
65
  end
51
66
  end
52
67
 
53
68
  def delete_sso(cookies)
69
+ raise ArgumentError, "ENV['MN_REDIS_URL'] is required" \
70
+ unless ENV.key? 'MN_REDIS_URL'
71
+ raise ArgumentError, "ENV['COOKIE_DOMAIN'] is required" \
72
+ unless ENV.key? 'COOKIE_DOMAIN'
54
73
  if cookies[SSO_COOKIE_NAME]
55
74
  redis_server.del(cookies[SSO_COOKIE_NAME])
56
75
  cookies.delete SSO_COOKIE_NAME
@@ -62,10 +81,12 @@ module MnUtilsAuth
62
81
 
63
82
  private
64
83
 
65
- def set_sso_cookie(cookies)
84
+ def set_sso_cookie(cookies, persistent)
85
+ expiry = persistent ? 1.year.from_now : 1.day.from_now
66
86
  cookies[SSO_COOKIE_NAME] = {
67
87
  value: cookie_value,
68
- expires: 1.year.from_now,
88
+ domain: ENV['COOKIE_DOMAIN'],
89
+ expires: expiry,
69
90
  secure: true,
70
91
  httponly: true
71
92
  }
@@ -1,3 +1,3 @@
1
1
  module MnUtilsGem
2
- VERSION = "1.14.1"
2
+ VERSION = "1.15.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mn_utils_gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.1
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shamim Mirzai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-02 00:00:00.000000000 Z
11
+ date: 2019-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gelf