comparison web/src/luan/modules/web/Web_server.luan @ 188:e132b7a3d94c

add AuthenticationHandler git-svn-id: https://luan-java.googlecode.com/svn/trunk@189 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Thu, 26 Jun 2014 06:49:01 +0000
parents cf939124461a
children 04b86428dc50
comparison
equal deleted inserted replaced
187:1cb298d918b2 188:e132b7a3d94c
11 import "org.eclipse.jetty.server.handler.RequestLogHandler" 11 import "org.eclipse.jetty.server.handler.RequestLogHandler"
12 import "org.eclipse.jetty.server.handler.ContextHandler" 12 import "org.eclipse.jetty.server.handler.ContextHandler"
13 import "org.eclipse.jetty.server.handler.GzipHandler" 13 import "org.eclipse.jetty.server.handler.GzipHandler"
14 import "org.eclipse.jetty.server.handler.HandlerWrapper" 14 import "org.eclipse.jetty.server.handler.HandlerWrapper"
15 import "org.eclipse.jetty.server.session.SessionHandler" 15 import "org.eclipse.jetty.server.session.SessionHandler"
16 import "luan.modules.web.AuthenticationHandler"
16 17
17 18
18 port = 8080 19 port = 8080
19 20
21 private_password = "password"
22
20 welcome_file = "index.html" 23 welcome_file = "index.html"
21 24
22 25
23 session_handler = SessionHandler.new() 26 authentication_handler = AuthenticationHandler.new("/private/")
24 27
25 luan_handler = Http.new_luan_handler() 28 luan_handler = Http.new_luan_handler()
26 29
27 resource_handler = ResourceHandler.new() 30 resource_handler = ResourceHandler.new()
28 31
29 handlers = HandlerList.new() 32 handlers = HandlerList.new()
30 handlers.setHandlers { session_handler, luan_handler, resource_handler } 33 handlers.setHandlers { authentication_handler, luan_handler, resource_handler }
31 34
32 function add_folder(context,dir) 35 function add_folder(context,dir)
33 local rh = ResourceHandler.new() 36 local rh = ResourceHandler.new()
34 rh.setResourceBase(dir) 37 rh.setResourceBase(dir)
35 local ch = ContextHandler.new(context) 38 local ch = ContextHandler.new(context)
51 log.setExtended(false) 54 log.setExtended(false)
52 log_handler = RequestLogHandler.new() 55 log_handler = RequestLogHandler.new()
53 log_handler.setRequestLog(log) 56 log_handler.setRequestLog(log)
54 57
55 local hc = HandlerCollection.new() 58 local hc = HandlerCollection.new()
56 hc.setHandlers { handler_wrapper, DefaultHandler.new(), log_handler } 59 hc.setHandlers { SessionHandler.new(), handler_wrapper, DefaultHandler.new(), log_handler }
57 60
58 61
59 function serve(dir) 62 function serve(dir)
60 dir = dir.gsub("/$","") -- remove trailing '/' if any 63 dir = dir.gsub("/$","") -- remove trailing '/' if any
61 Package.path = dir.."?.luan;java:luan/modules/?.luan" 64 Package.path = dir.."?.luan;java:luan/modules/?.luan"
65 authentication_handler.setPassword(private_password)
62 resource_handler.setResourceBase(dir) 66 resource_handler.setResourceBase(dir)
63 resource_handler.setWelcomeFiles {welcome_file} 67 resource_handler.setWelcomeFiles {welcome_file}
64 luan_handler.setWelcomeFile(welcome_file) 68 luan_handler.setWelcomeFile(welcome_file)
65 local server = Server.new(port) 69 local server = Server.new(port)
66 server.setHandler(hc); 70 server.setHandler(hc);