SSOwat/init.lua

54 lines
1.4 KiB
Lua
Raw Normal View History

--
-- init.lua
--
-- This is the initialization file of SSOwat. It is called once at the Nginx
-- server's start.
-- Consequently, all the variables declared (along with libraries and
-- translations) in this file will be *persistent* from one HTTP request to
-- another.
--
2013-10-20 16:38:49 +02:00
-- Remove prepending '@' & trailing 'init.lua'
script_path = string.sub(debug.getinfo(1).source, 2, -9)
-- Include local libs in package.path
package.path = package.path .. ";"..script_path.."?.lua"
2013-10-15 10:11:39 +02:00
-- Load libraries
2013-10-15 13:58:16 +02:00
json = require "json"
2013-10-15 10:11:39 +02:00
lualdap = require "lualdap"
math = require "math"
2013-10-20 16:38:49 +02:00
hige = require "hige"
2014-05-12 14:32:56 +02:00
lfs = require "lfs"
socket = require "socket"
2013-10-15 10:11:39 +02:00
-- Persistent shared table
2013-10-20 22:07:26 +02:00
flashs = {}
2013-10-16 23:53:14 +02:00
login = {}
logout = {}
2014-05-12 14:32:56 +02:00
i18n = {}
-- Efficient function to get a random string
function random_string ()
math.randomseed( tonumber(tostring(socket.gettime()*10000):reverse()) )
str = tostring(math.random()):sub(3)
socket.sleep(1e-400)
return str
end
-- Load translations in the "i18n" above table
2014-05-12 14:32:56 +02:00
local locale_dir = script_path.."portal/locales/"
for file in lfs.dir(locale_dir) do
if string.sub(file, -4) == "json" then
local lang = string.sub(file, 1, 2)
local locale_file = io.open(locale_dir..file, "r")
i18n[lang] = json.decode(locale_file:read("*all"))
end
end
2013-10-16 11:27:18 +02:00
-- Path of the configuration
2013-10-30 17:29:19 +01:00
conf_path = "/etc/ssowat/conf.json"
2013-10-20 17:24:44 +02:00
-- You should see that in your Nginx error logs by default
2013-10-20 17:24:44 +02:00
ngx.log(ngx.INFO, "SSOwat ready")