comparison src/luan/host/init.luan @ 1330:f41919741100

fix security
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 11 Feb 2019 01:38:55 -0700
parents src/luan/host/Init.luan@307e76ccd0d6
children 11b7e11f9ed5
comparison
equal deleted inserted replaced
1329:5a39b006acd1 1330:f41919741100
1 local Luan = require "luan:Luan.luan"
2 local error = Luan.error
3 local do_file = Luan.do_file or error()
4 local String = require "luan:String.luan"
5 local gsub = String.gsub or error()
6
7
8 local dir, domain, logging = ...
9
10
11 -- logging
12
13 if logging then
14 java()
15 local LuanLogger = require "java:luan.modules.logging.LuanLogger"
16 local Level = require "java:org.apache.log4j.Level"
17 local EnhancedPatternLayout = require "java:org.apache.log4j.EnhancedPatternLayout"
18 local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender"
19
20 local logger = LuanLogger.getRootLogger()
21 logger.removeAllAppenders()
22 local layout = EnhancedPatternLayout.new("%d %-5p %c - %m%n")
23 local log_dir = dir.."/site/private/local/logs/"
24
25 local function add_appender(file,level)
26 local appender = RollingFileAppender.new(layout, log_dir..file)
27 appender.setMaxFileSize("1MB")
28 logger.addAppender(appender)
29 if level ~= logger.getEffectiveLevel() then
30 appender.setThreshold(level)
31 end
32 end
33
34 add_appender("error.log",Level.ERROR)
35 add_appender("warn.log",Level.WARN)
36 add_appender("info.log",Level.INFO)
37 end
38
39
40
41 -- set vars
42
43 local Io = require "luan:Io.luan"
44 local Http = require "luan:http/Http.luan"
45 local Hosting = require "luan:host/Hosting.luan"
46 local Mail = require "luan:mail/Mail.luan"
47
48 Io.password = do_file(dir.."/info.luan").password or error()
49
50 Http.dir = "file:"..dir.."/site"
51
52 function Io.schemes.site(path,loading)
53 return Io.uri( Http.dir..path, loading )
54 end
55
56 Http.domain = domain
57
58
59 -- mail - fix later
60
61 Hosting.send_mail = Mail.Sender{
62 host = "smtpcorp.com"
63 username = "smtp@luan.ws" -- ?
64 password = "luanhost"
65 port = 2525
66 }.send
67
68
69 -- callback to luanhost code
70 do_file "file:init.luan"
71
72
73
74 java()
75 local WebHandler = require "java:luan.host.WebHandler"
76 local LuanJava = require "java:luan.Luan"
77
78 function Hosting.no_security(password)
79 WebHandler.securityPassword == password or error "wrong password"
80 LuanJava.setSecurity(nil)
81 end