nm-gigya 0.1.25 → 0.1.26
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/gigya/connection.rb +17 -0
- data/lib/gigya/controller_utils.rb +1 -21
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b8253c94735c73d0870a148bfc7babdf2da0bc6baab966ba4c0d7207ce33f90f
|
|
4
|
+
data.tar.gz: b4ebd99810c2e3283a86c33982934ef47cd4627ca2068c5622200331118b7efc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 18216ea8d1ef4c8ee108349cbcbf473d4743a4f76604fe72a973241a735265576eb4be4a406b72daa465ffa6dede7e0ba328717aa7a233f579f5ed4376421847
|
|
7
|
+
data.tar.gz: 6d9146dce8eb144384c6d1824172526b9856c37bdf9510006829e14ec380f6cbf9010d96e1da2f334bb2c933fdef342d9144a0ac85e2fee7ed34b00f4c03fb2c
|
data/lib/gigya/connection.rb
CHANGED
|
@@ -153,6 +153,7 @@ module Gigya
|
|
|
153
153
|
|
|
154
154
|
class Connection
|
|
155
155
|
attr_accessor :jwt_skip_validation
|
|
156
|
+
attr_accessor :whitelisted_api_keys
|
|
156
157
|
|
|
157
158
|
GIGYA_BASE_URL="gigya.com"
|
|
158
159
|
def self.shared_connection
|
|
@@ -164,6 +165,10 @@ module Gigya
|
|
|
164
165
|
:user_secret => ENV["GIGYA_USER_SECRET"],
|
|
165
166
|
:debug_connection => ENV["GIGYA_DEBUG_CONNECTION"] == "1"
|
|
166
167
|
)
|
|
168
|
+
|
|
169
|
+
whitelist = ENV["GIGYA_WHITELISTED_API_KEYS"]
|
|
170
|
+
conn.whitelisted_api_keys => whitelist.split(",") unless whitelist.blank?
|
|
171
|
+
|
|
167
172
|
conn.jwt_skip_validation = false
|
|
168
173
|
conn
|
|
169
174
|
end
|
|
@@ -263,6 +268,18 @@ module Gigya
|
|
|
263
268
|
|
|
264
269
|
return user_jwt_info if jwt_skip_validation
|
|
265
270
|
|
|
271
|
+
# If we have enumerated whitelisted API keys
|
|
272
|
+
unless whitelisted_api_keys.nil?
|
|
273
|
+
# Grab the API key encoded in the token
|
|
274
|
+
jwt_api_key = user_jwt_info["apiKey"]
|
|
275
|
+
|
|
276
|
+
# Our own API key is automatically valid
|
|
277
|
+
if jwt_api_key != api_key
|
|
278
|
+
# Make sure it is listed in the whitelisted keys
|
|
279
|
+
raise "Invalid API Key" unless whitelisted_api_keys.include?(jwt_api_key)
|
|
280
|
+
end
|
|
281
|
+
end
|
|
282
|
+
|
|
266
283
|
signing_key_id = signing_jwt_info["keyid"]
|
|
267
284
|
@cached_data["jwt_public_keys"] ||= {}
|
|
268
285
|
k = @cached_data["jwt_public_keys"][signing_key_id]
|
|
@@ -23,30 +23,10 @@ module Gigya
|
|
|
23
23
|
@@gigya_refresh_time_decay
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
@@max_logged_tokens = 20
|
|
27
|
-
@@logged_tokens = {}
|
|
28
|
-
|
|
29
|
-
def log_token_error(tok, msg = nil)
|
|
30
|
-
if @@max_logged_tokens > 0
|
|
31
|
-
if @@logged_tokens[tok]
|
|
32
|
-
# already logged
|
|
33
|
-
else
|
|
34
|
-
@@logged_tokens[tok] = true
|
|
35
|
-
@@max_logged_tokens = @@max_logged_tokens - 1
|
|
36
|
-
end
|
|
37
|
-
Rails.logger.warn("Token Issue: #{tok}") if tok.present?
|
|
38
|
-
Rails.logger.warn("Token message: #{msg}") if msg.present?
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
26
|
def gigya_user_required
|
|
43
27
|
begin
|
|
44
|
-
if gigya_user_identifier.blank?
|
|
45
|
-
log_token_error(request.headers["Authorization"])
|
|
46
|
-
render(:json => {:error => "Invalid login"}, :status => 401)
|
|
47
|
-
end
|
|
28
|
+
render(:json => {:error => "Invalid login"}, :status => 401) if gigya_user_identifier.blank?
|
|
48
29
|
rescue
|
|
49
|
-
log_token_error(request.headers["Authorization"], $!.message)
|
|
50
30
|
render(:json => {:error => "#{$!.message}"}, :status => 401)
|
|
51
31
|
end
|
|
52
32
|
end
|