diff options
author | 2016-08-25 10:17:35 +0800 | |
---|---|---|
committer | 2016-08-25 10:24:54 +0800 | |
commit | 8597cf5e116012c038e83f763a816ca106cad4d2 (patch) | |
tree | 4f6671079047db1f565060dcce4bf2607856cf68 /msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/iui_auth.lua | |
parent | eb9df7aa9e268192dd68a46af4576671b17adcf9 (diff) |
Solve api gateway issue
Change-Id: I88fedc04faaf4d799b9dbf4c306aa073cabd6218
Signed-off-by: HuabingZhao <zhao.huabing@zte.com.cn>
Diffstat (limited to 'msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/iui_auth.lua')
-rw-r--r-- | msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/iui_auth.lua | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/iui_auth.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/iui_auth.lua new file mode 100644 index 0000000..dd7b2ed --- /dev/null +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/iui_auth.lua @@ -0,0 +1,41 @@ +local cache = ngx.shared.ceryx +local client_ip = ngx.var.remote_addr +local uri = ngx.var.uri +if uri == "/iui/framework/login.html" then + local value, flags = cache:get(client_ip) + if not value then + return + else + ngx.redirect("/iui/framework/main-page.html") + end +end + +local referer = ngx.var.http_referer +local refererList = { + "/iui/framework/login.html", + "/iui/framework/css/login.css", + "/iui/component/thirdparty/font%-awesome/css/font%-awesome.min.css", + "/iui/framework/css/style%-custom.css" +} +local function referer_matches(t, r) + for k,_ in pairs(t) do + if string.match(r, t[k]) then + return true + end + end + return false +end + +if referer and referer_matches(refererList, referer) then + return +end + +local succ, err, forcible = cache:replace(client_ip, "place_holder", 3600) +if not succ then + if err == 'not found' then + ngx.log(ngx.WARN, "access record not found for "..client_ip..",redirect to login page") + ngx.redirect("/iui/framework/login.html") + else + ngx.log(ngx.WARN, err) + end +end
\ No newline at end of file |