-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathConnectorServlet.java
121 lines (102 loc) · 3.56 KB
/
ConnectorServlet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package cn.bluejoe.elfinder.servlet;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.bluejoe.elfinder.controller.ConnectorController;
import cn.bluejoe.elfinder.controller.executor.CommandExecutorFactory;
import cn.bluejoe.elfinder.controller.executor.DefaultCommandExecutorFactory;
import cn.bluejoe.elfinder.controller.executors.MissingCommandExecutor;
import cn.bluejoe.elfinder.impl.DefaultFsService;
import cn.bluejoe.elfinder.impl.DefaultFsServiceConfig;
import cn.bluejoe.elfinder.impl.FsSecurityCheckForAll;
import cn.bluejoe.elfinder.impl.StaticFsServiceFactory;
import cn.bluejoe.elfinder.localfs.LocalFsVolume;
public class ConnectorServlet extends HttpServlet
{
//core member of this Servlet
ConnectorController _connectorController;
/**
* create a command executor factory
*
* @param config
* @return
*/
protected CommandExecutorFactory createCommandExecutorFactory(
ServletConfig config)
{
DefaultCommandExecutorFactory defaultCommandExecutorFactory = new DefaultCommandExecutorFactory();
defaultCommandExecutorFactory
.setClassNamePattern("cn.bluejoe.elfinder.controller.executors.%sCommandExecutor");
defaultCommandExecutorFactory
.setFallbackCommand(new MissingCommandExecutor());
return defaultCommandExecutorFactory;
}
/**
* create a connector controller
*
* @param config
* @return
*/
protected ConnectorController createConnectorController(ServletConfig config)
{
ConnectorController connectorController = new ConnectorController();
connectorController
.setCommandExecutorFactory(createCommandExecutorFactory(config));
connectorController.setFsServiceFactory(createServiceFactory(config));
return connectorController;
}
protected DefaultFsService createFsService()
{
DefaultFsService fsService = new DefaultFsService();
fsService.setSecurityChecker(new FsSecurityCheckForAll());
DefaultFsServiceConfig serviceConfig = new DefaultFsServiceConfig();
serviceConfig.setTmbWidth(80);
fsService.setServiceConfig(serviceConfig);
fsService.addVolume("A",
createLocalFsVolume("My Files", new File("/tmp/a")));
fsService.addVolume("B",
createLocalFsVolume("Shared", new File("/tmp/b")));
return fsService;
}
private LocalFsVolume createLocalFsVolume(String name, File rootDir)
{
LocalFsVolume localFsVolume = new LocalFsVolume();
localFsVolume.setName(name);
localFsVolume.setRootDir(rootDir);
return localFsVolume;
}
/**
* create a service factory
*
* @param config
* @return
*/
protected StaticFsServiceFactory createServiceFactory(ServletConfig config)
{
StaticFsServiceFactory staticFsServiceFactory = new StaticFsServiceFactory();
DefaultFsService fsService = createFsService();
staticFsServiceFactory.setFsService(fsService);
return staticFsServiceFactory;
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
_connectorController.connector(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
_connectorController.connector(req, resp);
}
@Override
public void init(ServletConfig config) throws ServletException
{
_connectorController = createConnectorController(config);
}
}