Skip to content

Commit 421b7a1

Browse files
authored
Removed the country code mapping table; Adapted tests. (#19)
1 parent 3fc6960 commit 421b7a1

File tree

2 files changed

+17
-53
lines changed

2 files changed

+17
-53
lines changed

src/lua/api-gateway/validation/oauth2/userProfileValidator.lua

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@
3232
-- Properties that can be set by this validator:
3333
-- 1. user_email
3434
-- 2. user_country_code
35-
-- 3. user_region
36-
-- 4. user_name
35+
-- 3. user_name
3736
--
3837
-- User: ddascal
3938
-- Date: 17/12/13
@@ -54,16 +53,6 @@ local RESPONSES = {
5453
NOT_ALLOWED = { error_code = "403024", message = "Not allowed to read the profile"},
5554
P_UNKNOWN_ERROR = { error_code = "503020", message = "Could not read the profile" }
5655
}
57-
---
58-
-- @field US - countries mapping to US region
59-
-- @field EU - countries mapping to EU region
60-
-- @field AP - countries mapping to AP region
61-
--
62-
local DEFAULT_COUNTRY_MAP = {
63-
US = { "AG", "AI", "AN", "AR", "AS", "AW", "BB", "BL", "BM", "BO", "BQ", "BR", "BS", "BZ", "CA", "CL", "CO", "CR", "CU", "CW", "DM", "DO", "EC", "FK", "GD", "GF", "GP", "GS", "GT", "GY", "HN", "HT", "JM", "KN", "KY", "LC", "MP", "MQ", "MS", "MX", "NI", "PA", "PE", "PM", "PR", "PY", "SR", "SV", "SX", "TC", "TT", "UM", "US", "UY", "VC", "VE", "VG", "VI" },
64-
EU = { "AD", "AL", "AM", "AO", "AT", "AX", "AZ", "BA", "BE", "BF", "BG", "BI", "BJ", "BV", "BW", "BY", "CD", "CF", "CG", "CH", "CI", "CM", "CS", "CV", "CY", "CZ", "DE", "DJ", "DK", "DZ", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FO", "FR", "GA", "GB", "GE", "GG", "GH", "GI", "GL", "GM", "GN", "GQ", "GR", "GW", "HR", "HU", "IE", "IM", "IO", "IR", "IS", "IT", "JE", "KE", "KM", "KP", "KV", "LI", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MK", "ML", "MR", "MT", "MU", "MW", "MZ", "NA", "NE", "NG", "NL", "NO", "PL", "PS", "PT", "RE", "RO", "RS", "RW", "SC", "SD", "SE", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SS", "ST", "SY", "SZ", "TD", "TF", "TG", "TN", "TZ", "UA", "UG", "VA", "YT", "ZA", "ZM", "ZW" },
65-
AP = { "AE", "AF", "AQ", "AU", "BD", "BH", "BN", "BT", "CC", "CK", "CN", "CX", "FJ", "FM", "GU", "HK", "HM", "ID", "IL", "IN", "IQ", "IR", "JO", "JP", "KG", "KH", "KI", "KR", "KW", "KZ", "LA", "LB", "LK", "MH", "MM", "MN", "MO", "MV", "MY", "NC", "NF", "NP", "NR", "NU", "NZ", "OM", "PF", "PG", "PH", "PK", "PN", "PW", "QA", "RU", "SA", "SB", "SG", "TH", "TJ", "TK", "TL", "TM", "TO", "TR", "TV", "TW", "UZ", "VN", "VU", "WF", "WS", "YE" }
66-
}
6756

6857
---
6958
-- Maximum time in seconds specifying how long to cache a valid token in GW's memory
@@ -151,24 +140,6 @@ function _M:isProfileValid(cachedProfile)
151140
return true
152141
end
153142

154-
---
155-
-- Returns an object mapping countries to regions
156-
function _M:getDefaultCountryMap()
157-
return DEFAULT_COUNTRY_MAP
158-
end
159-
160-
function _M:getUserRegion( user_country_code, country_map )
161-
local cmap = country_map or self:getDefaultCountryMap()
162-
for region,countries in pairs(cmap) do
163-
for i , countryCode in pairs(countries) do
164-
if user_country_code == countryCode then
165-
return region
166-
end
167-
end
168-
end
169-
return "US"
170-
end
171-
172143
---
173144
-- Returns an object with a set of variables to be saved in the request's context and later in the request's vars
174145
-- IMPORTANT: This method is only called when fetching a new profile, otherwise the information from the cache
@@ -180,7 +151,6 @@ function _M:extractContextVars(profile)
180151
cachingObj.user_email = profile.email
181152
cachingObj.user_country_code = profile.countryCode
182153
cachingObj.user_name = profile.displayName
183-
cachingObj.user_region = self:getUserRegion(profile.countryCode)
184154
cachingObj.user_first_name = profile.first_name
185155
cachingObj.user_last_name = profile.last_name
186156
return cachingObj

test/perl/api-gateway/validation/oauth2/userProfileValidator.t

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use Cwd qw(cwd);
3131

3232
repeat_each(2);
3333

34-
plan tests => repeat_each() * (blocks() * 8 ) - 6;
34+
plan tests => repeat_each() * (blocks() * 8 ) - 12;
3535

3636
my $pwd = cwd();
3737

@@ -80,7 +80,7 @@ __DATA__
8080
set $validate_user_profile on;
8181
8282
access_by_lua "ngx.apiGateway.validation.validateRequest()";
83-
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_region=" .. ngx.var.user_region .. ",user_name=" .. ngx.var.user_name)';
83+
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_name=" .. ngx.var.user_name)';
8484
}
8585
location /local-cache {
8686
set $authtoken $http_authorization;
@@ -123,13 +123,13 @@ Authorization: Bearer SOME_OAUTH_PROFILE_TEST_1
123123
"GET /redis-cache"
124124
]
125125
--- response_body_like eval
126-
['^user_email=johndoe_ĂÂă\@domain.com,user_country_code=AT,user_region=EU,user_name=display_name%E2%80%94%E5%A4%A7%EF%BC%8D%E5%A5%B3.*',
127-
'^Local: {"user_region":"EU","user_country_code":"AT","user_email":"johndoe_ĂÂă@domain.com","user_name":"display_name—大-女"}.*',
128-
'^Redis: {"user_region":"EU","user_country_code":"AT","user_email":"johndoe_ĂÂă@domain.com","user_name":"display_name—大-女"}.*']
126+
['^user_email=johndoe_ĂÂă\@domain.com,user_country_code=AT,user_name=display_name%E2%80%94%E5%A4%A7%EF%BC%8D%E5%A5%B3.*',
127+
'Local: {"user_name":"display_name—大-女","user_email":"johndoe_ĂÂă@domain.com","user_country_code":"AT"}',
128+
'Redis: {"user_name":"display_name—大-女","user_email":"johndoe_ĂÂă@domain.com","user_country_code":"AT"}']
129129
--- no_error_log
130130
[error]
131131
132-
=== TEST 2: test ims_profile is saved correctly in cache and in request variables with US region
132+
=== TEST 2: test ims_profile is saved correctly in cache and in request variables
133133
--- http_config eval: $::HttpConfig
134134
--- config
135135
include ../../api-gateway/api-gateway-cache.conf;
@@ -147,7 +147,7 @@ Authorization: Bearer SOME_OAUTH_PROFILE_TEST_1
147147
set $validate_user_profile on;
148148
149149
access_by_lua "ngx.apiGateway.validation.validateRequest()";
150-
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_region=" .. ngx.var.user_region .. ",user_name=" .. ngx.var.user_name)';
150+
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_name=" .. ngx.var.user_name)';
151151
}
152152
153153
location /local-cache {
@@ -181,9 +181,9 @@ Authorization: Bearer SOME_OAUTH_TOKEN_TEST_TWO
181181
"GET /redis-cache"
182182
]
183183
--- response_body_like eval
184-
['^user_email=noreply\@domain.com,user_country_code=CA,user_region=US,user_name=display_name.*',
185-
'^{"user_region":"US","user_country_code":"CA","user_email":"[email protected]","user_name":"display_name"}.*',
186-
'^{"user_region":"US","user_country_code":"CA","user_email":"[email protected]","user_name":"display_name"}.*']
184+
['^user_email=noreply\@domain.com,user_country_code=CA,user_name=display_name.*',
185+
'{"user_name":"display_name","user_email":"[email protected]","user_country_code":"CA"}',
186+
'{"user_name":"display_name","user_email":"[email protected]","user_country_code":"CA"}']
187187
--- no_error_log
188188
[error]
189189
@@ -205,11 +205,10 @@ Authorization: Bearer SOME_OAUTH_TOKEN_TEST_TWO
205205
set $validate_user_profile on;
206206
207207
access_by_lua "ngx.apiGateway.validation.validateRequest()";
208-
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_region=" .. ngx.var.user_region .. ",user_name=" .. ngx.var.user_name)';
208+
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_name=" .. ngx.var.user_name)';
209209
210210
add_header X-User-Id $user_email;
211211
add_header X-User-Country-Code $user_country_code;
212-
add_header X-User-Region $user_region;
213212
add_header X-User-Name $user_name;
214213
}
215214
@@ -222,11 +221,10 @@ Authorization: Bearer SOME_OAUTH_TOKEN_TEST_THREE
222221
--- request
223222
GET /test-validate-user
224223
--- response_body_like eval
225-
"^user_email=noreply-ăâ\@domain.com,user_country_code=CA,user_region=US,user_name=display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF.*"
224+
"^user_email=noreply-ăâ\@domain.com,user_country_code=CA,user_name=display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF.*"
226225
--- response_headers_like
227226
X-User-Id: noreply-ăâ@domain.com
228227
X-User-Country-Code: CA
229-
X-User-Region: US
230228
X-User-Name: display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF
231229
--- error_code: 200
232230
--- no_error_log
@@ -250,11 +248,10 @@ X-User-Name: display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF
250248
set $validate_user_profile on;
251249
252250
access_by_lua "ngx.apiGateway.validation.validateRequest()";
253-
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_region=" .. ngx.var.user_region .. ",user_name=" .. ngx.var.user_name)';
251+
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_name=" .. ngx.var.user_name)';
254252
255253
add_header X-User-Id $user_email;
256254
add_header X-User-Country-Code $user_country_code;
257-
add_header X-User-Region $user_region;
258255
add_header X-User-Name $user_name;
259256
}
260257
@@ -267,10 +264,9 @@ Authorization: Bearer SOME_OAUTH_TOKEN_TEST_FOUR
267264
--- request
268265
GET /test-validate-user
269266
--- response_body_like eval
270-
"^user_email=noreply-ăâ\@domain.com,user_country_code=,user_region=US,user_name=display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF.*"
267+
"^user_email=noreply-ăâ\@domain.com,user_country_code=,user_name=display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF.*"
271268
--- response_headers_like
272269
X-User-Id: noreply-ăâ@domain.com
273-
X-User-Region: US
274270
X-User-Name: display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF
275271
--- error_code: 200
276272
--- no_error_log
@@ -294,11 +290,10 @@ X-User-Name: display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF
294290
set $validate_user_profile on;
295291
296292
access_by_lua "ngx.apiGateway.validation.validateRequest()";
297-
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_region=" .. ngx.var.user_region .. ",user_name=" .. ngx.var.user_name)';
293+
content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_name=" .. ngx.var.user_name)';
298294
299295
add_header X-User-Id $user_email;
300296
add_header X-User-Country-Code $user_country_code;
301-
add_header X-User-Region $user_region;
302297
add_header X-User-Name $user_name;
303298
}
304299
@@ -311,10 +306,9 @@ Authorization: Bearer SOME_OAUTH_TOKEN_TEST_FIVE
311306
--- request
312307
GET /test-validate-user
313308
--- response_body_like eval
314-
"^user_email=noreply-ăâ\@domain.com,user_country_code=,user_region=US,user_name=display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF.*"
309+
"^user_email=noreply-ăâ\@domain.com,user_country_code=,user_name=display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF.*"
315310
--- response_headers_like
316311
X-User-Id: noreply-ăâ@domain.com
317-
X-User-Region: US
318312
X-User-Name: display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF
319313
--- error_code: 200
320314
--- no_error_log

0 commit comments

Comments
 (0)