741 |
10 Oct 06 |
olle |
1 |
/* |
1652 |
22 May 07 |
gregory |
$Id$ |
741 |
10 Oct 06 |
olle |
3 |
|
1916 |
31 Aug 07 |
jari |
Copyright (C) 2006 Olle Mansson |
1916 |
31 Aug 07 |
jari |
Copyright (C) 2007 Gregory Vincic |
741 |
10 Oct 06 |
olle |
6 |
|
1652 |
22 May 07 |
gregory |
This file is part of Proteios. |
1652 |
22 May 07 |
gregory |
Available at http://www.proteios.org/ |
741 |
10 Oct 06 |
olle |
9 |
|
1652 |
22 May 07 |
gregory |
Proteios is free software; you can redistribute it and/or modify it |
1652 |
22 May 07 |
gregory |
under the terms of the GNU General Public License as published by |
1652 |
22 May 07 |
gregory |
the Free Software Foundation; either version 2 of the License, or |
1652 |
22 May 07 |
gregory |
(at your option) any later version. |
741 |
10 Oct 06 |
olle |
14 |
|
1652 |
22 May 07 |
gregory |
Proteios is distributed in the hope that it will be useful, but |
1652 |
22 May 07 |
gregory |
WITHOUT ANY WARRANTY; without even the implied warranty of |
1652 |
22 May 07 |
gregory |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
1652 |
22 May 07 |
gregory |
General Public License for more details. |
741 |
10 Oct 06 |
olle |
19 |
|
1652 |
22 May 07 |
gregory |
You should have received a copy of the GNU General Public License |
1652 |
22 May 07 |
gregory |
along with this program; if not, write to the Free Software |
1652 |
22 May 07 |
gregory |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
1652 |
22 May 07 |
gregory |
02111-1307, USA. |
1652 |
22 May 07 |
gregory |
24 |
*/ |
741 |
10 Oct 06 |
olle |
25 |
|
741 |
10 Oct 06 |
olle |
// Xerver Free Web Server |
741 |
10 Oct 06 |
olle |
// Copyright (C) 2002-2005 Omid Rouhani |
741 |
10 Oct 06 |
olle |
28 |
// |
741 |
10 Oct 06 |
olle |
29 |
// |
741 |
10 Oct 06 |
olle |
// This program is free software; you can redistribute it and/or |
741 |
10 Oct 06 |
olle |
// modify it under the terms of the GNU General Public License |
741 |
10 Oct 06 |
olle |
// as published by the Free Software Foundation; either version 2 |
741 |
10 Oct 06 |
olle |
// of the License, or (at your option) any later version. |
741 |
10 Oct 06 |
olle |
34 |
// |
741 |
10 Oct 06 |
olle |
// This program is distributed in the hope that it will be useful, |
741 |
10 Oct 06 |
olle |
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
741 |
10 Oct 06 |
olle |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
741 |
10 Oct 06 |
olle |
// GNU General Public License for more details. |
741 |
10 Oct 06 |
olle |
39 |
// |
741 |
10 Oct 06 |
olle |
// You should have received a copy of the GNU General Public License |
741 |
10 Oct 06 |
olle |
// along with this program; if not, write to the Free Software |
741 |
10 Oct 06 |
olle |
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
741 |
10 Oct 06 |
olle |
43 |
// |
741 |
10 Oct 06 |
olle |
44 |
// |
741 |
10 Oct 06 |
olle |
45 |
// ############################################################# |
741 |
10 Oct 06 |
olle |
// ## YOU CAN CONTACT THE AUTHOR (OMID ROUHANI) AT: ## |
741 |
10 Oct 06 |
olle |
// ## HTTP://WWW.JAVASCRIPT.NU/XERVER/ ## |
741 |
10 Oct 06 |
olle |
48 |
// ## ## |
741 |
10 Oct 06 |
olle |
// ## IF YOUR SOFTWARE IS NOT RELEASED UNDER THE ## |
741 |
10 Oct 06 |
olle |
// ## GNU GENERAL PUBLIC LICENSE (GPL), ## |
741 |
10 Oct 06 |
olle |
// ## PLEASE DO NOT COPY ANYTHING FROM THIS SOURCE CODE!!! ## |
741 |
10 Oct 06 |
olle |
52 |
// ## ## |
741 |
10 Oct 06 |
olle |
// ## FOR FULL LICENSE, PLEASE READ "XERVER LICENSE". ## |
741 |
10 Oct 06 |
olle |
54 |
// ############################################################# |
741 |
10 Oct 06 |
olle |
55 |
|
1652 |
22 May 07 |
gregory |
56 |
package se.lu.thep.coreftpd.ftp_server; |
741 |
10 Oct 06 |
olle |
57 |
|
791 |
23 Oct 06 |
olle |
58 |
import se.lu.thep.coreftpd.common.DatabaseFile; |
791 |
23 Oct 06 |
olle |
59 |
import se.lu.thep.coreftpd.common.MyHashTable; |
791 |
23 Oct 06 |
olle |
60 |
import se.lu.thep.coreftpd.common.MyString; |
791 |
23 Oct 06 |
olle |
61 |
import se.lu.thep.coreftpd.webserver.XerverKernel; |
741 |
10 Oct 06 |
olle |
62 |
import java.io.BufferedOutputStream; |
741 |
10 Oct 06 |
olle |
63 |
import java.io.BufferedReader; |
741 |
10 Oct 06 |
olle |
64 |
import java.io.DataOutputStream; |
741 |
10 Oct 06 |
olle |
65 |
import java.io.File; |
741 |
10 Oct 06 |
olle |
66 |
import java.io.FileInputStream; |
741 |
10 Oct 06 |
olle |
67 |
import java.io.InputStreamReader; |
741 |
10 Oct 06 |
olle |
68 |
import java.net.Socket; |
741 |
10 Oct 06 |
olle |
69 |
import java.text.DateFormat; |
741 |
10 Oct 06 |
olle |
70 |
import java.util.Date; |
741 |
10 Oct 06 |
olle |
71 |
|
741 |
10 Oct 06 |
olle |
72 |
/** |
1652 |
22 May 07 |
gregory |
73 |
* |
1652 |
22 May 07 |
gregory |
* <B>About this class:</B> <BR> |
1652 |
22 May 07 |
gregory |
* For every connection that is made to the Xerver FTP Setup one <CODE>FTPSetupConnection</CODE> |
1652 |
22 May 07 |
gregory |
* is created. |
1652 |
22 May 07 |
gregory |
77 |
* |
741 |
10 Oct 06 |
olle |
* @author <a href="http://www.JavaScript.nu/xerver/" TARGET="_top">Omid Rouhani</a> |
741 |
10 Oct 06 |
olle |
* @version 1.0 |
741 |
10 Oct 06 |
olle |
80 |
*/ |
741 |
10 Oct 06 |
olle |
81 |
|
1652 |
22 May 07 |
gregory |
82 |
final public class FTPSetupConnection extends Thread { |
1652 |
22 May 07 |
gregory |
83 |
private final static String s_userFolder = FTPServerController.s_userFolder; |
741 |
10 Oct 06 |
olle |
84 |
|
1652 |
22 May 07 |
gregory |
85 |
private final static String s_initFile = FTPServerController.s_initFile; |
1652 |
22 May 07 |
gregory |
86 |
|
1652 |
22 May 07 |
gregory |
87 |
private final static String s_dataFolder = FTPServerController.s_dataFolder; |
1652 |
22 May 07 |
gregory |
88 |
|
1652 |
22 May 07 |
gregory |
89 |
private final static String s_userDataExtension = FTPServerController.s_userDataExtension; |
1652 |
22 May 07 |
gregory |
90 |
|
1652 |
22 May 07 |
gregory |
91 |
private final static boolean b_showErrors = false; |
1652 |
22 May 07 |
gregory |
92 |
|
741 |
10 Oct 06 |
olle |
93 |
private Socket so_userConnection; |
1652 |
22 May 07 |
gregory |
94 |
|
1652 |
22 May 07 |
gregory |
95 |
private DataOutputStream theOutput; // Everything written to this will be |
1652 |
22 May 07 |
gregory |
// sent to the browser |
1652 |
22 May 07 |
gregory |
97 |
|
1652 |
22 May 07 |
gregory |
98 |
private String s_allData, s_requestedFolderLocation, s_errorStatus, |
1652 |
22 May 07 |
gregory |
99 |
s_requestMethod, s_requestDocument; |
1652 |
22 May 07 |
gregory |
100 |
|
741 |
10 Oct 06 |
olle |
101 |
private Date d_dateToday; |
1652 |
22 May 07 |
gregory |
102 |
|
741 |
10 Oct 06 |
olle |
103 |
private DateFormat df_dateFormat; |
1652 |
22 May 07 |
gregory |
104 |
|
1652 |
22 May 07 |
gregory |
105 |
private BufferedReader br_theInputWeGetFromBrowser; // Read the browsers |
1652 |
22 May 07 |
gregory |
// header from this |
1652 |
22 May 07 |
gregory |
107 |
|
741 |
10 Oct 06 |
olle |
108 |
private MyHashTable MyHT_allDataFromQuery; |
1652 |
22 May 07 |
gregory |
109 |
|
741 |
10 Oct 06 |
olle |
110 |
private FTPSettings FTPS_settings; |
1652 |
22 May 07 |
gregory |
111 |
|
741 |
10 Oct 06 |
olle |
112 |
private UserDatabase UD_userDatabase; |
741 |
10 Oct 06 |
olle |
113 |
|
791 |
23 Oct 06 |
olle |
114 |
/** |
791 |
23 Oct 06 |
olle |
* Logger used. Used to log specific events. |
791 |
23 Oct 06 |
olle |
116 |
*/ |
791 |
23 Oct 06 |
olle |
117 |
private static final org.apache.log4j.Logger log = org.apache.log4j.LogManager |
1652 |
22 May 07 |
gregory |
118 |
.getLogger("se.lu.thep.coreftpd.ftp_server"); |
741 |
10 Oct 06 |
olle |
119 |
|
1652 |
22 May 07 |
gregory |
120 |
public FTPSetupConnection(Socket agrUserConnection) { |
790 |
23 Oct 06 |
olle |
// *** Debug Info |
1652 |
22 May 07 |
gregory |
122 |
log |
1652 |
22 May 07 |
gregory |
123 |
.info("FTPSetupConnection::FTPSetupConnections(): Start - agrUserConnection = \"" |
1652 |
22 May 07 |
gregory |
124 |
+ agrUserConnection.toString() + "\""); |
741 |
10 Oct 06 |
olle |
125 |
try { |
1652 |
22 May 07 |
gregory |
126 |
so_userConnection = agrUserConnection; |
741 |
10 Oct 06 |
olle |
127 |
d_dateToday = new Date(); |
1652 |
22 May 07 |
gregory |
128 |
df_dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, |
1652 |
22 May 07 |
gregory |
129 |
DateFormat.LONG); |
1652 |
22 May 07 |
gregory |
130 |
s_errorStatus = "200 OK"; |
741 |
10 Oct 06 |
olle |
131 |
|
741 |
10 Oct 06 |
olle |
132 |
getRequestInformation(); |
741 |
10 Oct 06 |
olle |
133 |
createVariables(); |
741 |
10 Oct 06 |
olle |
134 |
|
1652 |
22 May 07 |
gregory |
135 |
theOutput = new DataOutputStream(new BufferedOutputStream( |
1652 |
22 May 07 |
gregory |
136 |
so_userConnection.getOutputStream())); // I "java.io.*" |
741 |
10 Oct 06 |
olle |
137 |
|
741 |
10 Oct 06 |
olle |
138 |
chooseWhatToReturn(); |
1652 |
22 May 07 |
gregory |
139 |
} catch (Exception e) { |
1652 |
22 May 07 |
gregory |
140 |
if (b_showErrors) |
1652 |
22 May 07 |
gregory |
141 |
System.out |
1652 |
22 May 07 |
gregory |
142 |
.println("An error occured @ getRequestInformation:\n" |
1652 |
22 May 07 |
gregory |
143 |
+ e.getMessage()); |
1652 |
22 May 07 |
gregory |
144 |
} |
741 |
10 Oct 06 |
olle |
145 |
} |
741 |
10 Oct 06 |
olle |
146 |
|
1652 |
22 May 07 |
gregory |
147 |
private void chooseWhatToReturn() { |
741 |
10 Oct 06 |
olle |
148 |
try { |
1652 |
22 May 07 |
gregory |
149 |
String s_actionValue = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
150 |
.giveValueByIndex("action"); |
1652 |
22 May 07 |
gregory |
151 |
String s_userValue = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
152 |
.giveValueByIndex("username"); |
741 |
10 Oct 06 |
olle |
153 |
|
1652 |
22 May 07 |
gregory |
154 |
if (!ValidateInput.isValidUserName(s_userValue)) { |
1652 |
22 May 07 |
gregory |
155 |
s_userValue = null; // s_userValue shall either be null, or a |
1652 |
22 May 07 |
gregory |
// valid user name... |
741 |
10 Oct 06 |
olle |
157 |
} |
741 |
10 Oct 06 |
olle |
158 |
|
1652 |
22 May 07 |
gregory |
159 |
if (s_actionValue != null) // If there is an action given (there |
1652 |
22 May 07 |
gregory |
// shall always be an action given, but |
1652 |
22 May 07 |
gregory |
// not if you visit the "setup root" |
1652 |
22 May 07 |
gregory |
// (="http://localhost:32123/")... |
741 |
10 Oct 06 |
olle |
163 |
{ |
1652 |
22 May 07 |
gregory |
// ************** SAVE SETTINGS TO XERVER, NOT TO A USER |
1652 |
22 May 07 |
gregory |
165 |
// ************** |
1652 |
22 May 07 |
gregory |
166 |
if (s_actionValue.equals("saveConfig")) { |
1652 |
22 May 07 |
gregory |
167 |
DatabaseFile DF_setupFile = new DatabaseFile(s_initFile); |
1652 |
22 May 07 |
gregory |
168 |
String s_portNr = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
169 |
.giveValueByIndex("portNr"); |
2703 |
16 May 08 |
olle |
170 |
String s_passiveRange = MyHT_allDataFromQuery |
2703 |
16 May 08 |
olle |
171 |
.giveValueByIndex("passiveRange"); |
1652 |
22 May 07 |
gregory |
172 |
String s_showAllias = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
173 |
.giveValueByIndex("showAlias"); |
1652 |
22 May 07 |
gregory |
174 |
String s_guestAccount = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
175 |
.giveValueByIndex("guestAccount"); |
1652 |
22 May 07 |
gregory |
176 |
String s_maxTimeToIdle = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
177 |
.giveValueByIndex("maxIdleTime"); |
1652 |
22 May 07 |
gregory |
178 |
String s_maxNumberOfNOOP = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
179 |
.giveValueByIndex("maxNOOPAllowed"); |
1652 |
22 May 07 |
gregory |
180 |
String s_dataPortNr = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
181 |
.giveValueByIndex("dataPortNr"); |
741 |
10 Oct 06 |
olle |
182 |
|
1652 |
22 May 07 |
gregory |
183 |
if (s_portNr != null) |
1652 |
22 May 07 |
gregory |
184 |
DF_setupFile.setValue("PORT_NR", s_portNr); |
1652 |
22 May 07 |
gregory |
185 |
if (s_showAllias != null) |
1652 |
22 May 07 |
gregory |
186 |
DF_setupFile.setValue("SHOW_ALLIAS", s_showAllias); |
1652 |
22 May 07 |
gregory |
187 |
if (s_guestAccount != null) |
1652 |
22 May 07 |
gregory |
188 |
DF_setupFile.setValue("GUEST_ACCOUNT", s_guestAccount); |
1652 |
22 May 07 |
gregory |
189 |
if (s_maxTimeToIdle != null) |
1652 |
22 May 07 |
gregory |
190 |
DF_setupFile.setValue("MAX_IDLE_TIME", s_maxTimeToIdle); |
1652 |
22 May 07 |
gregory |
191 |
if (s_maxNumberOfNOOP != null) |
1652 |
22 May 07 |
gregory |
192 |
DF_setupFile.setValue("MAX_NOOP_ALLOWED", |
1652 |
22 May 07 |
gregory |
193 |
s_maxNumberOfNOOP); |
2703 |
16 May 08 |
olle |
194 |
if (s_passiveRange != null) |
2703 |
16 May 08 |
olle |
195 |
DF_setupFile.setValue("PASSIVE_PORT_RANGE", s_passiveRange); |
1652 |
22 May 07 |
gregory |
196 |
if (s_dataPortNr != null) |
1652 |
22 May 07 |
gregory |
197 |
DF_setupFile.setValue("DATA_PORT_NR", s_dataPortNr); |
741 |
10 Oct 06 |
olle |
198 |
|
1652 |
22 May 07 |
gregory |
199 |
FTPServer FTPS_currentlyRunning = FTPServer.getFTPServer(); |
741 |
10 Oct 06 |
olle |
200 |
FTPS_settings.updateData(); |
741 |
10 Oct 06 |
olle |
201 |
|
1652 |
22 May 07 |
gregory |
202 |
if (FTPS_currentlyRunning != null) // If server is running, |
1652 |
22 May 07 |
gregory |
// make sure we update |
1652 |
22 May 07 |
gregory |
// settings to the |
1652 |
22 May 07 |
gregory |
// server that is |
1652 |
22 May 07 |
gregory |
// already running. |
741 |
10 Oct 06 |
olle |
207 |
{ |
1652 |
22 May 07 |
gregory |
208 |
FTPS_currentlyRunning.initSettings(); // Set the |
1652 |
22 May 07 |
gregory |
// port-variable... |
1652 |
22 May 07 |
gregory |
210 |
FTPS_currentlyRunning.listenForConnections();// ...Which |
1652 |
22 May 07 |
gregory |
// is |
1652 |
22 May 07 |
gregory |
// used |
1652 |
22 May 07 |
gregory |
// here |
741 |
10 Oct 06 |
olle |
214 |
} |
741 |
10 Oct 06 |
olle |
215 |
|
1652 |
22 May 07 |
gregory |
216 |
returnThisPage(s_dataFolder + "WizUserFrames.html", |
1652 |
22 May 07 |
gregory |
217 |
"text/html"); |
741 |
10 Oct 06 |
olle |
218 |
|
1652 |
22 May 07 |
gregory |
219 |
} // ************** SAVE SETTINGS TO A USER ************** |
1652 |
22 May 07 |
gregory |
220 |
else if (s_actionValue.equals("save")) { |
1652 |
22 May 07 |
gregory |
221 |
String s_typeValue = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
222 |
.giveValueByIndex("type"); |
1652 |
22 May 07 |
gregory |
223 |
String s_newValue = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
224 |
.giveValueByIndex("newValue"); |
1652 |
22 May 07 |
gregory |
225 |
if (s_userValue != null && s_typeValue != null) { |
1652 |
22 May 07 |
gregory |
226 |
DatabaseFile DF_user = new DatabaseFile(s_userFolder |
1652 |
22 May 07 |
gregory |
227 |
+ s_userValue + s_userDataExtension); |
1652 |
22 May 07 |
gregory |
228 |
if (s_typeValue.equals("root")) { |
1652 |
22 May 07 |
gregory |
229 |
s_newValue = ValidateInput |
1652 |
22 May 07 |
gregory |
230 |
.makeValidPath(s_newValue); // Necessary?? |
741 |
10 Oct 06 |
olle |
231 |
|
1652 |
22 May 07 |
gregory |
232 |
if (s_newValue != null) { |
1652 |
22 May 07 |
gregory |
233 |
DF_user.setValue("ROOT", s_newValue); |
741 |
10 Oct 06 |
olle |
234 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
235 |
DF_user = null; |
741 |
10 Oct 06 |
olle |
236 |
UD_userDatabase.updateDatabase(); |
741 |
10 Oct 06 |
olle |
237 |
|
1652 |
22 May 07 |
gregory |
238 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
239 |
+ "WizDataSaved.html", "text/html"); |
1652 |
22 May 07 |
gregory |
240 |
} else { |
741 |
10 Oct 06 |
olle |
241 |
ShowFTPSetupPages.showInvalidrequest(theOutput); |
741 |
10 Oct 06 |
olle |
242 |
} |
1652 |
22 May 07 |
gregory |
243 |
} else if (s_typeValue.equals("updatePermissions")) { |
1652 |
22 May 07 |
gregory |
244 |
if (s_newValue != null) { |
1652 |
22 May 07 |
gregory |
245 |
DF_user.setValue("PERMISSIONS", s_newValue); |
741 |
10 Oct 06 |
olle |
246 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
247 |
DF_user = null; |
741 |
10 Oct 06 |
olle |
248 |
UD_userDatabase.updateDatabase(); |
741 |
10 Oct 06 |
olle |
249 |
|
1652 |
22 May 07 |
gregory |
250 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
251 |
+ "WizSetPermissions.html", "text/html"); |
1652 |
22 May 07 |
gregory |
252 |
ShowFTPSetupPages.showPermissionsInfo( |
1652 |
22 May 07 |
gregory |
253 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
254 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
255 |
} else { |
741 |
10 Oct 06 |
olle |
256 |
ShowFTPSetupPages.showInvalidrequest(theOutput); |
741 |
10 Oct 06 |
olle |
257 |
} |
1652 |
22 May 07 |
gregory |
258 |
} else if (s_typeValue.equals("addPermissions")) { |
1652 |
22 May 07 |
gregory |
259 |
UserData UD_user = UD_userDatabase |
1652 |
22 May 07 |
gregory |
260 |
.getUserData(s_userValue); |
1652 |
22 May 07 |
gregory |
261 |
String newPermissionPath = ValidateInput |
1652 |
22 May 07 |
gregory |
262 |
.makeValidPath(MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
263 |
.giveValueByIndex("newPermissionPath")); |
741 |
10 Oct 06 |
olle |
264 |
|
1652 |
22 May 07 |
gregory |
265 |
if (ValidateInput.isValidPath(newPermissionPath)) { |
741 |
10 Oct 06 |
olle |
266 |
|
1652 |
22 May 07 |
gregory |
// ******* START: FIND OUT IF PATH ALREADY |
1652 |
22 May 07 |
gregory |
// EXISTS ************ |
1652 |
22 May 07 |
gregory |
269 |
String[] as_allPermissions = MyString |
1652 |
22 May 07 |
gregory |
270 |
.makeArrayOfString(UD_user |
1652 |
22 May 07 |
gregory |
271 |
.getPermissionsString(), ","); |
741 |
10 Oct 06 |
olle |
272 |
|
1652 |
22 May 07 |
gregory |
// ALL THESE ARE TEMPORARY VARIABLES (NO GLOBAL |
1652 |
22 May 07 |
gregory |
// VARIABLES) |
1652 |
22 May 07 |
gregory |
275 |
int i_lengthAllPermissions = as_allPermissions.length; |
741 |
10 Oct 06 |
olle |
276 |
int separatorIndexOf; |
1652 |
22 May 07 |
gregory |
277 |
String path, tmpLine /* , attribute */; |
1652 |
22 May 07 |
gregory |
278 |
boolean b_pathAlreadyInList = false; |
741 |
10 Oct 06 |
olle |
279 |
String attributes; |
741 |
10 Oct 06 |
olle |
280 |
|
1652 |
22 May 07 |
gregory |
281 |
for (int i = 0; i < i_lengthAllPermissions; i++) { |
1652 |
22 May 07 |
gregory |
282 |
tmpLine = as_allPermissions[i]; |
1652 |
22 May 07 |
gregory |
283 |
separatorIndexOf = tmpLine.lastIndexOf(';'); |
1652 |
22 May 07 |
gregory |
284 |
path = tmpLine.substring(0, |
1652 |
22 May 07 |
gregory |
285 |
separatorIndexOf); |
1652 |
22 May 07 |
gregory |
// Don't need this here: |
1652 |
22 May 07 |
gregory |
// attribute=tmpLine.substring(separatorIndexOf+1); |
741 |
10 Oct 06 |
olle |
288 |
|
1652 |
22 May 07 |
gregory |
289 |
if (path.endsWith("*")) { |
1652 |
22 May 07 |
gregory |
290 |
if ((newPermissionPath + "*") |
1652 |
22 May 07 |
gregory |
291 |
.equalsIgnoreCase(path)) { |
1652 |
22 May 07 |
gregory |
292 |
b_pathAlreadyInList = true; |
741 |
10 Oct 06 |
olle |
293 |
break; |
741 |
10 Oct 06 |
olle |
294 |
} |
1652 |
22 May 07 |
gregory |
295 |
} else { |
1652 |
22 May 07 |
gregory |
296 |
if (newPermissionPath |
1652 |
22 May 07 |
gregory |
297 |
.equalsIgnoreCase(path)) { |
1652 |
22 May 07 |
gregory |
298 |
b_pathAlreadyInList = true; |
741 |
10 Oct 06 |
olle |
299 |
break; |
741 |
10 Oct 06 |
olle |
300 |
} |
741 |
10 Oct 06 |
olle |
301 |
} |
741 |
10 Oct 06 |
olle |
302 |
} |
1652 |
22 May 07 |
gregory |
// ******* STOP: FIND OUT IF PATH ALREADY EXISTS |
1652 |
22 May 07 |
gregory |
304 |
// ************ |
741 |
10 Oct 06 |
olle |
305 |
|
1652 |
22 May 07 |
gregory |
306 |
if (!b_pathAlreadyInList) { |
1652 |
22 May 07 |
gregory |
307 |
attributes = ""; |
1652 |
22 May 07 |
gregory |
308 |
if (MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
309 |
.giveValueByIndex("thisRead") != null) |
1652 |
22 May 07 |
gregory |
310 |
attributes += "r"; |
1652 |
22 May 07 |
gregory |
311 |
if (MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
312 |
.giveValueByIndex("thisWrite") != null) |
1652 |
22 May 07 |
gregory |
313 |
attributes += "w"; |
1652 |
22 May 07 |
gregory |
314 |
if (MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
315 |
.giveValueByIndex("thisCreate") != null) |
1652 |
22 May 07 |
gregory |
316 |
attributes += "c"; |
1652 |
22 May 07 |
gregory |
317 |
if (MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
318 |
.giveValueByIndex("thisList") != null) |
1652 |
22 May 07 |
gregory |
319 |
attributes += "l"; |
741 |
10 Oct 06 |
olle |
320 |
|
1652 |
22 May 07 |
gregory |
321 |
if (MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
322 |
.giveValueByIndex("thisSubdir") != null) |
1652 |
22 May 07 |
gregory |
323 |
newPermissionPath += "*"; |
741 |
10 Oct 06 |
olle |
324 |
|
1652 |
22 May 07 |
gregory |
325 |
if (i_lengthAllPermissions == 0) // If no |
1652 |
22 May 07 |
gregory |
// permissions |
1652 |
22 May 07 |
gregory |
// already |
1652 |
22 May 07 |
gregory |
// exists... |
741 |
10 Oct 06 |
olle |
329 |
{ |
1652 |
22 May 07 |
gregory |
330 |
DF_user.setValue("PERMISSIONS", |
1652 |
22 May 07 |
gregory |
331 |
newPermissionPath + ";" |
1652 |
22 May 07 |
gregory |
332 |
+ attributes); |
1652 |
22 May 07 |
gregory |
333 |
} else // If permissions already exists and |
1652 |
22 May 07 |
gregory |
// we shall append to the list |
741 |
10 Oct 06 |
olle |
335 |
{ |
1652 |
22 May 07 |
gregory |
336 |
DF_user.setValue("PERMISSIONS", UD_user |
1652 |
22 May 07 |
gregory |
337 |
.getPermissionsString() |
1652 |
22 May 07 |
gregory |
338 |
+ "," |
1652 |
22 May 07 |
gregory |
339 |
+ newPermissionPath |
1652 |
22 May 07 |
gregory |
340 |
+ ";" |
1652 |
22 May 07 |
gregory |
341 |
+ attributes); |
741 |
10 Oct 06 |
olle |
342 |
} |
741 |
10 Oct 06 |
olle |
343 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
344 |
DF_user = null; |
741 |
10 Oct 06 |
olle |
345 |
UD_userDatabase.updateDatabase(); |
741 |
10 Oct 06 |
olle |
346 |
|
1652 |
22 May 07 |
gregory |
347 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
348 |
+ "WizSetPermissions.html", |
1652 |
22 May 07 |
gregory |
349 |
"text/html"); |
1652 |
22 May 07 |
gregory |
350 |
ShowFTPSetupPages.showPermissionsInfo( |
1652 |
22 May 07 |
gregory |
351 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
352 |
.getUserData(s_userValue)); |
741 |
10 Oct 06 |
olle |
353 |
|
1652 |
22 May 07 |
gregory |
354 |
} else { |
1652 |
22 May 07 |
gregory |
355 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
356 |
+ "WizSetPermissions.html", |
1652 |
22 May 07 |
gregory |
357 |
"text/html"); |
1652 |
22 May 07 |
gregory |
358 |
ShowFTPSetupPages.showPermissionsInfo( |
1652 |
22 May 07 |
gregory |
359 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
360 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
361 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
362 |
.showAlertInfo(theOutput, |
1652 |
22 May 07 |
gregory |
363 |
"You have already shared this directory and set permissions for it."); |
741 |
10 Oct 06 |
olle |
364 |
} |
1652 |
22 May 07 |
gregory |
365 |
} else { |
1652 |
22 May 07 |
gregory |
366 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
367 |
+ "WizSetPermissions.html", "text/html"); |
1652 |
22 May 07 |
gregory |
368 |
ShowFTPSetupPages.showPermissionsInfo( |
1652 |
22 May 07 |
gregory |
369 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
370 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
371 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
372 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
373 |
theOutput, |
1652 |
22 May 07 |
gregory |
374 |
"The directory was not shared.\\nThe directory path you have entered is not a path to a valid directory."); |
741 |
10 Oct 06 |
olle |
375 |
} |
1652 |
22 May 07 |
gregory |
376 |
} else if (s_typeValue.equals("addAlias")) { |
1652 |
22 May 07 |
gregory |
377 |
UserData UD_user = UD_userDatabase |
1652 |
22 May 07 |
gregory |
378 |
.getUserData(s_userValue); |
1652 |
22 May 07 |
gregory |
379 |
String[] as_aliasesPath, as_aliasesName; |
1652 |
22 May 07 |
gregory |
380 |
as_aliasesName = UD_user.getAliasesName(); |
1652 |
22 May 07 |
gregory |
381 |
as_aliasesPath = UD_user.getAliasesPath(); |
1652 |
22 May 07 |
gregory |
382 |
String newAliasName = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
383 |
.giveValueByIndex("newAliasName"); |
1652 |
22 May 07 |
gregory |
384 |
String newAliasPath = ValidateInput |
1652 |
22 May 07 |
gregory |
385 |
.makeValidPath(MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
386 |
.giveValueByIndex("newAliasPath")); |
741 |
10 Oct 06 |
olle |
387 |
|
1652 |
22 May 07 |
gregory |
388 |
if (!MyString.stringExistInArrayIgnoreCase( |
1652 |
22 May 07 |
gregory |
389 |
newAliasName, as_aliasesName)) { |
1652 |
22 May 07 |
gregory |
390 |
if (ValidateInput |
1652 |
22 May 07 |
gregory |
391 |
.isValidAliasName(newAliasName)) { |
1652 |
22 May 07 |
gregory |
392 |
if (ValidateInput.isValidPath(newAliasPath)) { |
1652 |
22 May 07 |
gregory |
393 |
if (as_aliasesName.length == 0) // If no |
1652 |
22 May 07 |
gregory |
// aliases |
1652 |
22 May 07 |
gregory |
// already |
1652 |
22 May 07 |
gregory |
// exists... |
741 |
10 Oct 06 |
olle |
397 |
{ |
1652 |
22 May 07 |
gregory |
398 |
DF_user.setValue("ALIASES", |
1652 |
22 May 07 |
gregory |
399 |
newAliasName + "=" |
1652 |
22 May 07 |
gregory |
400 |
+ newAliasPath); |
1652 |
22 May 07 |
gregory |
401 |
} else // If aliases already exists and |
1652 |
22 May 07 |
gregory |
// we shall append to the list |
741 |
10 Oct 06 |
olle |
403 |
{ |
1652 |
22 May 07 |
gregory |
404 |
DF_user.setValue("ALIASES", UD_user |
1652 |
22 May 07 |
gregory |
405 |
.getAliasString() |
1652 |
22 May 07 |
gregory |
406 |
+ "," |
1652 |
22 May 07 |
gregory |
407 |
+ newAliasName |
1652 |
22 May 07 |
gregory |
408 |
+ "=" |
1652 |
22 May 07 |
gregory |
409 |
+ newAliasPath); |
741 |
10 Oct 06 |
olle |
410 |
} |
741 |
10 Oct 06 |
olle |
411 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
412 |
DF_user = null; |
741 |
10 Oct 06 |
olle |
413 |
UD_userDatabase.updateDatabase(); |
741 |
10 Oct 06 |
olle |
414 |
|
1652 |
22 May 07 |
gregory |
415 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
416 |
+ "WizSetAliases.html", |
1652 |
22 May 07 |
gregory |
417 |
"text/html"); |
1652 |
22 May 07 |
gregory |
418 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
419 |
.showAliasesInfo( |
1652 |
22 May 07 |
gregory |
420 |
theOutput, |
1652 |
22 May 07 |
gregory |
421 |
UD_userDatabase |
1652 |
22 May 07 |
gregory |
422 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
423 |
} else { |
1652 |
22 May 07 |
gregory |
424 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
425 |
+ "WizSetAliases.html", |
1652 |
22 May 07 |
gregory |
426 |
"text/html"); |
1652 |
22 May 07 |
gregory |
427 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
428 |
.showAliasesInfo( |
1652 |
22 May 07 |
gregory |
429 |
theOutput, |
1652 |
22 May 07 |
gregory |
430 |
UD_userDatabase |
1652 |
22 May 07 |
gregory |
431 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
432 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
433 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
434 |
theOutput, |
1652 |
22 May 07 |
gregory |
435 |
"The new alias was not created.\\nThe alias path you have entered is not a path to a valid directory."); |
741 |
10 Oct 06 |
olle |
436 |
} |
1652 |
22 May 07 |
gregory |
437 |
} else { |
1652 |
22 May 07 |
gregory |
438 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
439 |
+ "WizSetAliases.html", "text/html"); |
1652 |
22 May 07 |
gregory |
440 |
ShowFTPSetupPages.showAliasesInfo( |
1652 |
22 May 07 |
gregory |
441 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
442 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
443 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
444 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
445 |
theOutput, |
1652 |
22 May 07 |
gregory |
446 |
"The new alias was not created because the alias name given was not a valid alias name.\\nAn alias name shall only contain letters, digits and underscores (_)."); |
741 |
10 Oct 06 |
olle |
447 |
} |
1652 |
22 May 07 |
gregory |
448 |
} else { |
1652 |
22 May 07 |
gregory |
449 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
450 |
+ "WizSetAliases.html", "text/html"); |
1652 |
22 May 07 |
gregory |
451 |
ShowFTPSetupPages.showAliasesInfo(theOutput, |
1652 |
22 May 07 |
gregory |
452 |
UD_userDatabase |
1652 |
22 May 07 |
gregory |
453 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
454 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
455 |
.showAlertInfo(theOutput, |
1652 |
22 May 07 |
gregory |
456 |
"The alias name given does already exists.\\nPlease choose another alias name."); |
741 |
10 Oct 06 |
olle |
457 |
} |
1652 |
22 May 07 |
gregory |
458 |
} else if (s_typeValue.equals("removeAlias")) { |
1652 |
22 May 07 |
gregory |
459 |
UserData UD_user = UD_userDatabase |
1652 |
22 May 07 |
gregory |
460 |
.getUserData(s_userValue); |
1652 |
22 May 07 |
gregory |
461 |
String[] as_aliasesPath, as_aliasesName; |
1652 |
22 May 07 |
gregory |
462 |
as_aliasesName = UD_user.getAliasesName(); |
1652 |
22 May 07 |
gregory |
463 |
as_aliasesPath = UD_user.getAliasesPath(); |
1652 |
22 May 07 |
gregory |
464 |
String s_newAlias = ""; |
1652 |
22 May 07 |
gregory |
465 |
String tmpRemoveThese = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
466 |
.giveValueByIndex("removeThese"); |
1652 |
22 May 07 |
gregory |
467 |
String[] s_removeThese; |
1652 |
22 May 07 |
gregory |
468 |
if (tmpRemoveThese != null) { |
1652 |
22 May 07 |
gregory |
469 |
s_removeThese = MyString.makeArrayOfString( |
1652 |
22 May 07 |
gregory |
470 |
tmpRemoveThese, ","); |
741 |
10 Oct 06 |
olle |
471 |
|
1652 |
22 May 07 |
gregory |
472 |
for (int i = 0; i < as_aliasesName.length; i++) { |
1652 |
22 May 07 |
gregory |
473 |
if (!MyString.stringExistInArrayIgnoreCase( |
1652 |
22 May 07 |
gregory |
474 |
as_aliasesName[i], s_removeThese)) { |
1652 |
22 May 07 |
gregory |
475 |
s_newAlias += as_aliasesName[i] + "=" |
1652 |
22 May 07 |
gregory |
476 |
+ as_aliasesPath[i] + ","; |
741 |
10 Oct 06 |
olle |
477 |
} |
741 |
10 Oct 06 |
olle |
478 |
} |
741 |
10 Oct 06 |
olle |
479 |
|
1652 |
22 May 07 |
gregory |
480 |
if (!s_newAlias.equals("")) { |
1652 |
22 May 07 |
gregory |
481 |
s_newAlias = s_newAlias.substring(0, |
1652 |
22 May 07 |
gregory |
482 |
s_newAlias.length() - 1); // Remove |
1652 |
22 May 07 |
gregory |
// last |
1652 |
22 May 07 |
gregory |
// comma |
1652 |
22 May 07 |
gregory |
485 |
// (,) |
741 |
10 Oct 06 |
olle |
486 |
} |
741 |
10 Oct 06 |
olle |
487 |
|
1652 |
22 May 07 |
gregory |
488 |
DF_user.setValue("ALIASES", s_newAlias); |
741 |
10 Oct 06 |
olle |
489 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
490 |
DF_user = null; |
741 |
10 Oct 06 |
olle |
491 |
UD_userDatabase.updateDatabase(); |
741 |
10 Oct 06 |
olle |
492 |
|
1652 |
22 May 07 |
gregory |
493 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
494 |
+ "WizSetAliases.html", "text/html"); |
1652 |
22 May 07 |
gregory |
495 |
ShowFTPSetupPages.showAliasesInfo(theOutput, |
1652 |
22 May 07 |
gregory |
496 |
UD_userDatabase |
1652 |
22 May 07 |
gregory |
497 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
498 |
} else { |
741 |
10 Oct 06 |
olle |
499 |
ShowFTPSetupPages.showInvalidrequest(theOutput); |
741 |
10 Oct 06 |
olle |
500 |
} |
1652 |
22 May 07 |
gregory |
501 |
} else if (s_typeValue.equals("password")) { |
1652 |
22 May 07 |
gregory |
502 |
if (!s_userValue.equals("guest") |
1652 |
22 May 07 |
gregory |
503 |
|| s_newValue == null) { |
1652 |
22 May 07 |
gregory |
504 |
if (s_newValue.equals(MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
505 |
.giveValueByIndex("password2")) |
1652 |
22 May 07 |
gregory |
506 |
&& !s_newValue.equals("")) { |
1652 |
22 May 07 |
gregory |
507 |
DF_user.setValue("PASSWORD", s_newValue); |
741 |
10 Oct 06 |
olle |
508 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
509 |
DF_user = null; |
741 |
10 Oct 06 |
olle |
510 |
UD_userDatabase.updateDatabase(); |
741 |
10 Oct 06 |
olle |
511 |
|
1652 |
22 May 07 |
gregory |
512 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
513 |
+ "WizDataSaved.html", "text/html"); |
1652 |
22 May 07 |
gregory |
514 |
} else { |
1652 |
22 May 07 |
gregory |
515 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
516 |
+ "WizSetPassword.html", |
1652 |
22 May 07 |
gregory |
517 |
"text/html"); |
1652 |
22 May 07 |
gregory |
518 |
ShowFTPSetupPages.showPasswordInfo( |
1652 |
22 May 07 |
gregory |
519 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
520 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
521 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
522 |
.showAlertInfo(theOutput, |
1652 |
22 May 07 |
gregory |
523 |
"Passwords did not match or empty password given.\\nPassword was not saved!"); |
741 |
10 Oct 06 |
olle |
524 |
} |
1652 |
22 May 07 |
gregory |
525 |
} else // else guest can not be choosen |
741 |
10 Oct 06 |
olle |
526 |
{ |
741 |
10 Oct 06 |
olle |
527 |
ShowFTPSetupPages.showInvalidrequest(theOutput); |
741 |
10 Oct 06 |
olle |
528 |
} |
1652 |
22 May 07 |
gregory |
529 |
} else if (s_typeValue.equals("copy")) { |
1652 |
22 May 07 |
gregory |
530 |
if (ValidateInput.isValidUserName(s_newValue)) // We |
1652 |
22 May 07 |
gregory |
// create |
1652 |
22 May 07 |
gregory |
// a |
1652 |
22 May 07 |
gregory |
// valid |
1652 |
22 May 07 |
gregory |
// account |
1652 |
22 May 07 |
gregory |
// name... |
1652 |
22 May 07 |
gregory |
536 |
{ |
1652 |
22 May 07 |
gregory |
537 |
boolean b_resultFromAction = DF_user |
1652 |
22 May 07 |
gregory |
538 |
.copyFile(s_userFolder + s_newValue |
1652 |
22 May 07 |
gregory |
539 |
+ s_userDataExtension); |
1652 |
22 May 07 |
gregory |
540 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
541 |
DF_user = null; |
1652 |
22 May 07 |
gregory |
542 |
UD_userDatabase.updateDatabase(); |
741 |
10 Oct 06 |
olle |
543 |
|
1652 |
22 May 07 |
gregory |
544 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
545 |
+ "WizChooseUser.html", "text/html"); |
1652 |
22 May 07 |
gregory |
546 |
ShowFTPSetupPages.showChooseUserScript( |
1652 |
22 May 07 |
gregory |
547 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
548 |
.getAllUsers()); |
741 |
10 Oct 06 |
olle |
549 |
|
1652 |
22 May 07 |
gregory |
550 |
if (!b_resultFromAction) { |
1652 |
22 May 07 |
gregory |
551 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
552 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
553 |
theOutput, |
1652 |
22 May 07 |
gregory |
554 |
"Could not create new account file.\\nThe reason might be that there already exists an account with the same account name."); |
741 |
10 Oct 06 |
olle |
555 |
} |
1652 |
22 May 07 |
gregory |
556 |
} else // An invalid name has been choosen |
741 |
10 Oct 06 |
olle |
557 |
{ |
1652 |
22 May 07 |
gregory |
558 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
559 |
+ "WizChooseUser.html", "text/html"); |
1652 |
22 May 07 |
gregory |
560 |
ShowFTPSetupPages.showChooseUserScript( |
1652 |
22 May 07 |
gregory |
561 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
562 |
.getAllUsers()); |
1652 |
22 May 07 |
gregory |
563 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
564 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
565 |
theOutput, |
1652 |
22 May 07 |
gregory |
566 |
"The new account was not created.\\nAn account name shall only contain letters, digits and underscores (_)."); |
1652 |
22 May 07 |
gregory |
567 |
} |
1652 |
22 May 07 |
gregory |
568 |
} else if (s_typeValue.equals("rename")) { |
1652 |
22 May 07 |
gregory |
569 |
if (!s_userValue.equals("guest")) { |
1652 |
22 May 07 |
gregory |
570 |
if (ValidateInput.isValidUserName(s_newValue)) // We |
1652 |
22 May 07 |
gregory |
// rename |
1652 |
22 May 07 |
gregory |
// to a |
1652 |
22 May 07 |
gregory |
// valid |
1652 |
22 May 07 |
gregory |
// name... |
741 |
10 Oct 06 |
olle |
575 |
{ |
1652 |
22 May 07 |
gregory |
576 |
boolean b_resultFromAction = DF_user |
1652 |
22 May 07 |
gregory |
577 |
.renameFile(s_userFolder |
1652 |
22 May 07 |
gregory |
578 |
+ s_newValue |
1652 |
22 May 07 |
gregory |
579 |
+ s_userDataExtension); |
741 |
10 Oct 06 |
olle |
580 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
581 |
DF_user = null; |
741 |
10 Oct 06 |
olle |
582 |
UD_userDatabase.updateDatabase(); |
741 |
10 Oct 06 |
olle |
583 |
|
1652 |
22 May 07 |
gregory |
584 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
585 |
+ "WizChooseUser.html", "text/html"); |
1652 |
22 May 07 |
gregory |
586 |
ShowFTPSetupPages.showChooseUserScript( |
1652 |
22 May 07 |
gregory |
587 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
588 |
.getAllUsers()); |
741 |
10 Oct 06 |
olle |
589 |
|
1652 |
22 May 07 |
gregory |
590 |
if (!b_resultFromAction) { |
1652 |
22 May 07 |
gregory |
591 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
592 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
593 |
theOutput, |
1652 |
22 May 07 |
gregory |
594 |
"Could not rename account file.\\nThe reason might be that there already exists an account with the same name."); |
741 |
10 Oct 06 |
olle |
595 |
} |
1652 |
22 May 07 |
gregory |
596 |
} else // An invalid name has been choosen |
741 |
10 Oct 06 |
olle |
597 |
{ |
1652 |
22 May 07 |
gregory |
598 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
599 |
+ "WizChooseUser.html", "text/html"); |
1652 |
22 May 07 |
gregory |
600 |
ShowFTPSetupPages.showChooseUserScript( |
1652 |
22 May 07 |
gregory |
601 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
602 |
.getAllUsers()); |
1652 |
22 May 07 |
gregory |
603 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
604 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
605 |
theOutput, |
1652 |
22 May 07 |
gregory |
606 |
"The account name was not renamed.\\nAn account name shall only contain letters, digits and underscores (_)."); |
741 |
10 Oct 06 |
olle |
607 |
} |
741 |
10 Oct 06 |
olle |
608 |
} |
1652 |
22 May 07 |
gregory |
609 |
} else if (s_typeValue.equals("addUser")) { |
1652 |
22 May 07 |
gregory |
610 |
String s_root = ValidateInput |
1652 |
22 May 07 |
gregory |
611 |
.makeValidPath(MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
612 |
.giveValueByIndex("root")); |
1652 |
22 May 07 |
gregory |
613 |
String s_password1 = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
614 |
.giveValueByIndex("password1"); |
1652 |
22 May 07 |
gregory |
615 |
String s_password2 = MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
616 |
.giveValueByIndex("password2"); |
1652 |
22 May 07 |
gregory |
617 |
if (ValidateInput.isValidPath(s_root)) { |
1652 |
22 May 07 |
gregory |
618 |
if (s_password1 != null |
1652 |
22 May 07 |
gregory |
619 |
&& s_password1.equals(s_password2) |
1652 |
22 May 07 |
gregory |
620 |
&& !s_password1.equals("")) { |
1652 |
22 May 07 |
gregory |
621 |
boolean b_fileAlreadyExists = DF_user |
1652 |
22 May 07 |
gregory |
622 |
.fileExists(); |
1652 |
22 May 07 |
gregory |
623 |
boolean b_resultFromAction = DF_user |
1652 |
22 May 07 |
gregory |
624 |
.createNewFile(); |
741 |
10 Oct 06 |
olle |
625 |
|
1652 |
22 May 07 |
gregory |
626 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
627 |
+ "WizAddNewUser.html", "text/html"); |
741 |
10 Oct 06 |
olle |
628 |
|
1652 |
22 May 07 |
gregory |
629 |
if (b_fileAlreadyExists) { |
1652 |
22 May 07 |
gregory |
630 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
631 |
.showAlertInfo(theOutput, |
1652 |
22 May 07 |
gregory |
632 |
"This user already exists.\\nPlease choose another username."); |
1652 |
22 May 07 |
gregory |
633 |
} else if (b_resultFromAction) { |
741 |
10 Oct 06 |
olle |
634 |
DF_user.addNewLine(); |
741 |
10 Oct 06 |
olle |
635 |
DF_user.addNewLine(); |
741 |
10 Oct 06 |
olle |
636 |
DF_user.addNewComment("User password"); |
1652 |
22 May 07 |
gregory |
637 |
DF_user.addNewValue("PASSWORD", |
1652 |
22 May 07 |
gregory |
638 |
s_password1); |
741 |
10 Oct 06 |
olle |
639 |
DF_user.addNewLine(); |
741 |
10 Oct 06 |
olle |
640 |
DF_user.addNewLine(); |
741 |
10 Oct 06 |
olle |
641 |
DF_user.addNewComment("Your root"); |
1652 |
22 May 07 |
gregory |
642 |
DF_user.addNewValue("ROOT", s_root); |
741 |
10 Oct 06 |
olle |
643 |
DF_user.addNewLine(); |
1652 |
22 May 07 |
gregory |
644 |
DF_user |
1652 |
22 May 07 |
gregory |
645 |
.addNewComment("Your shared folders and with what permissions"); |
1652 |
22 May 07 |
gregory |
646 |
DF_user.addNewValue("PERMISSIONS", ""); |
741 |
10 Oct 06 |
olle |
647 |
DF_user.addNewLine(); |
741 |
10 Oct 06 |
olle |
648 |
DF_user.addNewComment("Your aliases"); |
1652 |
22 May 07 |
gregory |
649 |
DF_user.addNewValue("ALIASES", ""); |
741 |
10 Oct 06 |
olle |
650 |
DF_user.addNewLine(); |
741 |
10 Oct 06 |
olle |
651 |
DF_user.addNewLine(); |
741 |
10 Oct 06 |
olle |
652 |
|
1652 |
22 May 07 |
gregory |
653 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
654 |
.showReloadUserFrame(theOutput); |
1652 |
22 May 07 |
gregory |
655 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
656 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
657 |
theOutput, |
1652 |
22 May 07 |
gregory |
658 |
"New account created!\\nFeel free to change settings for this account in the menu."); |
1652 |
22 May 07 |
gregory |
659 |
} else { |
1652 |
22 May 07 |
gregory |
660 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
661 |
.showAlertInfo(theOutput, |
1652 |
22 May 07 |
gregory |
662 |
"Xerver could not create new account.\\nFile access denied."); |
741 |
10 Oct 06 |
olle |
663 |
} |
741 |
10 Oct 06 |
olle |
664 |
|
741 |
10 Oct 06 |
olle |
665 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
666 |
DF_user = null; |
741 |
10 Oct 06 |
olle |
667 |
UD_userDatabase.updateDatabase(); |
1652 |
22 May 07 |
gregory |
668 |
} else { |
1652 |
22 May 07 |
gregory |
669 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
670 |
+ "WizAddNewUser.html", "text/html"); |
1652 |
22 May 07 |
gregory |
671 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
672 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
673 |
theOutput, |
1652 |
22 May 07 |
gregory |
674 |
"The account was not created.\\nYou have entered two different passwords or an empty password."); |
741 |
10 Oct 06 |
olle |
675 |
} |
1652 |
22 May 07 |
gregory |
676 |
} else { |
1652 |
22 May 07 |
gregory |
677 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
678 |
+ "WizAddNewUser.html", "text/html"); |
1652 |
22 May 07 |
gregory |
679 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
680 |
.showAlertInfo( |
1652 |
22 May 07 |
gregory |
681 |
theOutput, |
1652 |
22 May 07 |
gregory |
682 |
"The account was not created.\\nThe root you have entered is not a path to a valid directory."); |
741 |
10 Oct 06 |
olle |
683 |
} |
1652 |
22 May 07 |
gregory |
684 |
} else if (s_typeValue.equals("remove")) { |
1652 |
22 May 07 |
gregory |
685 |
if (!s_userValue.equals("guest")) { |
1652 |
22 May 07 |
gregory |
686 |
boolean b_resultFromAction = DF_user |
1652 |
22 May 07 |
gregory |
687 |
.deleteFile(); |
741 |
10 Oct 06 |
olle |
688 |
DF_user.destroy(); |
1652 |
22 May 07 |
gregory |
689 |
DF_user = null; |
741 |
10 Oct 06 |
olle |
690 |
UD_userDatabase.updateDatabase(); |
741 |
10 Oct 06 |
olle |
691 |
|
1652 |
22 May 07 |
gregory |
692 |
returnThisPage(s_dataFolder |
1652 |
22 May 07 |
gregory |
693 |
+ "WizChooseUser.html", "text/html"); |
1652 |
22 May 07 |
gregory |
694 |
ShowFTPSetupPages.showChooseUserScript( |
1652 |
22 May 07 |
gregory |
695 |
theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
696 |
.getAllUsers()); |
741 |
10 Oct 06 |
olle |
697 |
|
1652 |
22 May 07 |
gregory |
698 |
if (!b_resultFromAction) { |
1652 |
22 May 07 |
gregory |
699 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
700 |
.showAlertInfo(theOutput, |
1652 |
22 May 07 |
gregory |
701 |
"Xerver could not remove account.\\nFile access denied."); |
741 |
10 Oct 06 |
olle |
702 |
} |
1652 |
22 May 07 |
gregory |
703 |
} else // else guest can not be choosen |
741 |
10 Oct 06 |
olle |
704 |
{ |
741 |
10 Oct 06 |
olle |
705 |
ShowFTPSetupPages.showInvalidrequest(theOutput); |
741 |
10 Oct 06 |
olle |
706 |
} |
741 |
10 Oct 06 |
olle |
707 |
} |
1652 |
22 May 07 |
gregory |
708 |
} else // An invalid request has been made... |
741 |
10 Oct 06 |
olle |
709 |
{ |
741 |
10 Oct 06 |
olle |
710 |
ShowFTPSetupPages.showInvalidrequest(theOutput); |
741 |
10 Oct 06 |
olle |
711 |
} |
1652 |
22 May 07 |
gregory |
712 |
} else if (s_actionValue.equals("chooseDirectory")) { |
741 |
10 Oct 06 |
olle |
713 |
showHeaderData("text/html"); |
1652 |
22 May 07 |
gregory |
714 |
MyLS.showChooseDirectory(theOutput, MyHT_allDataFromQuery |
1652 |
22 May 07 |
gregory |
715 |
.giveValueByIndex("currentPath")); // Note: |
1652 |
22 May 07 |
gregory |
// "MyHT_allDataFromQuery.giveValueByIndex("currentPath")" |
1652 |
22 May 07 |
gregory |
// might be |
1652 |
22 May 07 |
gregory |
// null. If it's |
1652 |
22 May 07 |
gregory |
// null it means |
1652 |
22 May 07 |
gregory |
// the root |
1652 |
22 May 07 |
gregory |
// shall be |
1652 |
22 May 07 |
gregory |
// showed. |
1652 |
22 May 07 |
gregory |
723 |
} else if (s_actionValue.equals("wizardEmpty")) { |
1652 |
22 May 07 |
gregory |
724 |
returnThisPage(s_dataFolder + "WizEmpty.html", "text/html"); |
1652 |
22 May 07 |
gregory |
725 |
} else if (s_actionValue.equals("wizardGeneralSettings")) { |
1652 |
22 May 07 |
gregory |
726 |
returnThisPage(s_dataFolder + "WizGeneralSettings.html", |
1652 |
22 May 07 |
gregory |
727 |
"text/html"); |
741 |
10 Oct 06 |
olle |
728 |
ShowFTPSetupPages.showGeneralInfo(theOutput, FTPS_settings); |
1652 |
22 May 07 |
gregory |
729 |
} else if (s_actionValue.equals("wizardAdvancedSettings")) { |
1652 |
22 May 07 |
gregory |
730 |
returnThisPage(s_dataFolder + "WizAdvancedSettings.html", |
1652 |
22 May 07 |
gregory |
731 |
"text/html"); |
1652 |
22 May 07 |
gregory |
732 |
ShowFTPSetupPages |
1652 |
22 May 07 |
gregory |
733 |
.showAdvancedInfo(theOutput, FTPS_settings); |
1652 |
22 May 07 |
gregory |
734 |
} else if (s_actionValue.equals("wizardAddUserIntro")) { |
1652 |
22 May 07 |
gregory |
735 |
returnThisPage(s_dataFolder + "WizAddUserIntro.html", |
1652 |
22 May 07 |
gregory |
736 |
"text/html"); |
1652 |
22 May 07 |
gregory |
737 |
} else if (s_actionValue.equals("wizardAddNewUser")) { |
1652 |
22 May 07 |
gregory |
738 |
returnThisPage(s_dataFolder + "WizAddNewUser.html", |
1652 |
22 May 07 |
gregory |
739 |
"text/html"); |
1652 |
22 May 07 |
gregory |
740 |
} else if (s_actionValue.equals("wizardChooseUser")) { |
1652 |
22 May 07 |
gregory |
741 |
returnThisPage(s_dataFolder + "WizChooseUser.html", |
1652 |
22 May 07 |
gregory |
742 |
"text/html"); |
1652 |
22 May 07 |
gregory |
743 |
ShowFTPSetupPages.showChooseUserScript(theOutput, |
1652 |
22 May 07 |
gregory |
744 |
UD_userDatabase.getAllUsers()); |
1652 |
22 May 07 |
gregory |
745 |
} else if (s_actionValue.equals("wizardSetRoot")) { |
1652 |
22 May 07 |
gregory |
746 |
returnThisPage(s_dataFolder + "WizSetRoot.html", |
1652 |
22 May 07 |
gregory |
747 |
"text/html"); |
1652 |
22 May 07 |
gregory |
748 |
ShowFTPSetupPages.showRootInfo(theOutput, UD_userDatabase |
1652 |
22 May 07 |
gregory |
749 |
.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
750 |
} else if (s_actionValue.equals("wizardSetAliases")) { |
1652 |
22 May 07 |
gregory |
751 |
returnThisPage(s_dataFolder + "WizSetAliases.html", |
1652 |
22 May 07 |
gregory |
752 |
"text/html"); |
1652 |
22 May 07 |
gregory |
753 |
ShowFTPSetupPages.showAliasesInfo(theOutput, |
1652 |
22 May 07 |
gregory |
754 |
UD_userDatabase.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
755 |
} else if (s_actionValue.equals("wizardSetPermissions")) { |
1652 |
22 May 07 |
gregory |
756 |
returnThisPage(s_dataFolder + "WizSetPermissions.html", |
1652 |
22 May 07 |
gregory |
757 |
"text/html"); |
1652 |
22 May 07 |
gregory |
758 |
ShowFTPSetupPages.showPermissionsInfo(theOutput, |
1652 |
22 May 07 |
gregory |
759 |
UD_userDatabase.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
760 |
} else if (s_actionValue.equals("wizardSetPassword")) { |
1652 |
22 May 07 |
gregory |
761 |
returnThisPage(s_dataFolder + "WizSetPassword.html", |
1652 |
22 May 07 |
gregory |
762 |
"text/html"); |
1652 |
22 May 07 |
gregory |
763 |
ShowFTPSetupPages.showPasswordInfo(theOutput, |
1652 |
22 May 07 |
gregory |
764 |
UD_userDatabase.getUserData(s_userValue)); |
1652 |
22 May 07 |
gregory |
765 |
} else if (s_actionValue.equals("wizardUserFrames")) { |
1652 |
22 May 07 |
gregory |
766 |
returnThisPage(s_dataFolder + "WizUserFrames.html", |
1652 |
22 May 07 |
gregory |
767 |
"text/html"); |
1652 |
22 May 07 |
gregory |
768 |
} else if (s_actionValue.equals("wizardMenu")) { |
1652 |
22 May 07 |
gregory |
769 |
returnThisPage(s_dataFolder + "WizMenu.html", "text/html"); |
1652 |
22 May 07 |
gregory |
770 |
} else if (s_actionValue.equals("wizardFrames")) { |
1652 |
22 May 07 |
gregory |
771 |
returnThisPage(s_dataFolder + "WizFrames.html", "text/html"); |
1652 |
22 May 07 |
gregory |
772 |
} else if (s_actionValue.equals("showLogo")) { |
1652 |
22 May 07 |
gregory |
773 |
returnThisPage(s_dataFolder + "imagelogo.gif", "image/gif"); |
1652 |
22 May 07 |
gregory |
774 |
} else if (s_actionValue.equals("showBigWizard")) { |
1652 |
22 May 07 |
gregory |
775 |
returnThisPage(s_dataFolder + "imagewizardbig.gif", |
1652 |
22 May 07 |
gregory |
776 |
"image/gif"); |
1652 |
22 May 07 |
gregory |
777 |
} else if (s_actionValue.equals("showSmallWizard")) { |
1652 |
22 May 07 |
gregory |
778 |
returnThisPage(s_dataFolder + "imagewizardsmall.gif", |
1652 |
22 May 07 |
gregory |
779 |
"image/gif"); |
1652 |
22 May 07 |
gregory |
780 |
} else if (s_actionValue.equals("showImageRecycleBin")) { |
1652 |
22 May 07 |
gregory |
781 |
returnThisPage(s_dataFolder + "imagerecyclebin.gif", |
1652 |
22 May 07 |
gregory |
782 |
"image/gif"); |
1652 |
22 May 07 |
gregory |
783 |
} else if (s_actionValue.equals("showWizardHelp")) { |
1652 |
22 May 07 |
gregory |
784 |
returnThisPage(s_dataFolder + "WizardHelp.html", |
1652 |
22 May 07 |
gregory |
785 |
"text/html"); |
1652 |
22 May 07 |
gregory |
786 |
} else if (s_actionValue.equals("showStyleSheets")) { |
1652 |
22 May 07 |
gregory |
787 |
returnThisPage(s_dataFolder + "style.css", "text/html"); |
1652 |
22 May 07 |
gregory |
788 |
} else // else guest can not be choosen |
741 |
10 Oct 06 |
olle |
789 |
{ |
741 |
10 Oct 06 |
olle |
790 |
ShowFTPSetupPages.showInvalidrequest(theOutput); |
741 |
10 Oct 06 |
olle |
791 |
} |
1652 |
22 May 07 |
gregory |
792 |
} else { |
741 |
10 Oct 06 |
olle |
793 |
showHeaderData("text/html"); |
1652 |
22 May 07 |
gregory |
794 |
ShowFTPSetupPages.showWelcomePage(theOutput); // No "action" |
1652 |
22 May 07 |
gregory |
// has been set |
741 |
10 Oct 06 |
olle |
796 |
} |
741 |
10 Oct 06 |
olle |
797 |
|
741 |
10 Oct 06 |
olle |
798 |
yield(); |
1652 |
22 May 07 |
gregory |
799 |
sleep(125); // Be safe, don't close before all data has been sent |
741 |
10 Oct 06 |
olle |
800 |
|
741 |
10 Oct 06 |
olle |
801 |
theOutput.flush(); |
741 |
10 Oct 06 |
olle |
802 |
theOutput.close(); |
1652 |
22 May 07 |
gregory |
803 |
} catch (Exception e) { |
1652 |
22 May 07 |
gregory |
804 |
if (b_showErrors) |
1652 |
22 May 07 |
gregory |
805 |
System.out |
1652 |
22 May 07 |
gregory |
806 |
.println("An error occured @ getRequestInformation:\n" |
1652 |
22 May 07 |
gregory |
807 |
+ e); |
1652 |
22 May 07 |
gregory |
808 |
} |
741 |
10 Oct 06 |
olle |
809 |
} |
741 |
10 Oct 06 |
olle |
810 |
|
741 |
10 Oct 06 |
olle |
811 |
void getRequestInformation()// throws IOException |
741 |
10 Oct 06 |
olle |
812 |
{ |
741 |
10 Oct 06 |
olle |
813 |
try { |
1652 |
22 May 07 |
gregory |
814 |
String[] firstLineIndata; |
741 |
10 Oct 06 |
olle |
815 |
|
1652 |
22 May 07 |
gregory |
816 |
br_theInputWeGetFromBrowser = new BufferedReader( |
1652 |
22 May 07 |
gregory |
817 |
new InputStreamReader(so_userConnection.getInputStream())); |
1652 |
22 May 07 |
gregory |
818 |
firstLineIndata = MyString.makeArrayOfString( |
1652 |
22 May 07 |
gregory |
819 |
br_theInputWeGetFromBrowser.readLine(), " "); // Opera: |
1652 |
22 May 07 |
gregory |
// "GET |
1652 |
22 May 07 |
gregory |
// /mapp/fil.txt |
1652 |
22 May 07 |
gregory |
// HTTP/1.1" |
1652 |
22 May 07 |
gregory |
823 |
s_requestMethod = firstLineIndata[0]; // "GET" eller "GET/" |
741 |
10 Oct 06 |
olle |
824 |
|
1652 |
22 May 07 |
gregory |
825 |
s_requestDocument = firstLineIndata[1]; |
741 |
10 Oct 06 |
olle |
826 |
|
741 |
10 Oct 06 |
olle |
827 |
if (s_requestDocument.startsWith("/?")) |
1652 |
22 May 07 |
gregory |
828 |
s_allData = s_requestDocument.substring(2); // Ignore the first |
1652 |
22 May 07 |
gregory |
// /?, but get |
1652 |
22 May 07 |
gregory |
// everything else |
741 |
10 Oct 06 |
olle |
831 |
else |
1652 |
22 May 07 |
gregory |
832 |
s_allData = s_requestDocument.substring(1); // Ignore the first |
1652 |
22 May 07 |
gregory |
// /, but get |
1652 |
22 May 07 |
gregory |
// everything else |
741 |
10 Oct 06 |
olle |
835 |
|
1652 |
22 May 07 |
gregory |
836 |
} catch (Exception e) { |
1652 |
22 May 07 |
gregory |
837 |
if (b_showErrors) |
1652 |
22 May 07 |
gregory |
838 |
System.out |
1652 |
22 May 07 |
gregory |
839 |
.println("An error occured @ getRequestInformation:\n" |
1652 |
22 May 07 |
gregory |
840 |
+ e.getMessage()); |
1652 |
22 May 07 |
gregory |
841 |
} |
741 |
10 Oct 06 |
olle |
842 |
} |
741 |
10 Oct 06 |
olle |
843 |
|
1652 |
22 May 07 |
gregory |
844 |
private void createVariables() // Returns true if everything went OK |
741 |
10 Oct 06 |
olle |
845 |
{ |
1652 |
22 May 07 |
gregory |
846 |
MyHT_allDataFromQuery = new MyHashTable(s_allData, "&", "="); |
741 |
10 Oct 06 |
olle |
847 |
MyHT_allDataFromQuery.unescapeMakePlusesIntoSpacesAllValues(); |
741 |
10 Oct 06 |
olle |
848 |
getSettingsFromFile(); |
741 |
10 Oct 06 |
olle |
849 |
} |
741 |
10 Oct 06 |
olle |
850 |
|
1652 |
22 May 07 |
gregory |
851 |
private void getSettingsFromFile() { |
741 |
10 Oct 06 |
olle |
852 |
try { |
1652 |
22 May 07 |
gregory |
853 |
if (FTPS_settings == null) |
1652 |
22 May 07 |
gregory |
854 |
FTPS_settings = FTPServer.getFTPSettings(); |
741 |
10 Oct 06 |
olle |
855 |
|
1652 |
22 May 07 |
gregory |
856 |
UD_userDatabase = FileAccess.getDataBase(); |
1652 |
22 May 07 |
gregory |
857 |
if (UD_userDatabase == null) { |
741 |
10 Oct 06 |
olle |
858 |
FileAccess.createDataBase(); |
1652 |
22 May 07 |
gregory |
859 |
UD_userDatabase = FileAccess.getDataBase(); |
741 |
10 Oct 06 |
olle |
860 |
} |
1652 |
22 May 07 |
gregory |
861 |
} catch (Exception e) { |
1652 |
22 May 07 |
gregory |
862 |
if (b_showErrors) |
1652 |
22 May 07 |
gregory |
863 |
System.out.println("An error occured @ getSettingsFromFile:\n" |
1652 |
22 May 07 |
gregory |
864 |
+ e.getMessage()); |
1652 |
22 May 07 |
gregory |
865 |
} |
741 |
10 Oct 06 |
olle |
866 |
} |
741 |
10 Oct 06 |
olle |
867 |
|
1652 |
22 May 07 |
gregory |
868 |
private void showHeaderData(String contentType) { |
1652 |
22 May 07 |
gregory |
869 |
try { |
1652 |
22 May 07 |
gregory |
870 |
theOutput.writeBytes("HTTP/1.1 " + s_errorStatus + " \r\nDate: " |
1652 |
22 May 07 |
gregory |
871 |
+ df_dateFormat.format(d_dateToday) + " \r\n" + "Server: " |
1652 |
22 May 07 |
gregory |
872 |
+ XerverKernel.getXerverName() |
1652 |
22 May 07 |
gregory |
873 |
+ " \r\nConnection: close \r\n" |
1652 |
22 May 07 |
gregory |
874 |
+ "Pragma: no-cache \r\nCache-Control: no-cache \r\n" |
1652 |
22 May 07 |
gregory |
875 |
+ "Location: / \r\n" + "Content-Type: " + contentType |
1652 |
22 May 07 |
gregory |
876 |
+ " \r\n\r\n"); |
1652 |
22 May 07 |
gregory |
877 |
} catch (Exception e) { |
1652 |
22 May 07 |
gregory |
878 |
if (b_showErrors) |
1652 |
22 May 07 |
gregory |
879 |
System.out.println("An error occured @ returnThisPage:\n" |
1652 |
22 May 07 |
gregory |
880 |
+ e.getMessage()); |
1652 |
22 May 07 |
gregory |
881 |
} |
741 |
10 Oct 06 |
olle |
882 |
} |
741 |
10 Oct 06 |
olle |
883 |
|
1652 |
22 May 07 |
gregory |
884 |
private void returnThisPage(String documentToReturn, String contentType)// throws |
1652 |
22 May 07 |
gregory |
// IOException |
741 |
10 Oct 06 |
olle |
886 |
{ |
1652 |
22 May 07 |
gregory |
887 |
FileInputStream fileStreamed = null; |
741 |
10 Oct 06 |
olle |
888 |
|
1652 |
22 May 07 |
gregory |
889 |
try { |
741 |
10 Oct 06 |
olle |
890 |
showHeaderData(contentType); |
1652 |
22 May 07 |
gregory |
891 |
File theFile = new File(documentToReturn); |
1652 |
22 May 07 |
gregory |
892 |
fileStreamed = new FileInputStream(theFile); |
741 |
10 Oct 06 |
olle |
893 |
|
1652 |
22 May 07 |
gregory |
894 |
byte[] myBuffer = new byte[8192]; |
741 |
10 Oct 06 |
olle |
895 |
int n; |
1652 |
22 May 07 |
gregory |
896 |
while ((n = fileStreamed.read(myBuffer)) != -1) |
1652 |
22 May 07 |
gregory |
897 |
theOutput.write(myBuffer, 0, n); |
741 |
10 Oct 06 |
olle |
898 |
|
741 |
10 Oct 06 |
olle |
899 |
yield(); |
1652 |
22 May 07 |
gregory |
900 |
sleep(125); // Be safe, don't close before all data has been sent |
741 |
10 Oct 06 |
olle |
901 |
|
1652 |
22 May 07 |
gregory |
// fileStreamed.close(); |
1652 |
22 May 07 |
gregory |
903 |
} catch (Exception e) { |
1652 |
22 May 07 |
gregory |
904 |
if (b_showErrors) |
1652 |
22 May 07 |
gregory |
905 |
System.out.println("An error occured @ returnThisPage:\n" |
1652 |
22 May 07 |
gregory |
906 |
+ e.getMessage()); |
1652 |
22 May 07 |
gregory |
907 |
} |
741 |
10 Oct 06 |
olle |
908 |
|
1652 |
22 May 07 |
gregory |
909 |
try { |
1652 |
22 May 07 |
gregory |
910 |
if (fileStreamed != null) // If fileStreamed "holds" a file |
741 |
10 Oct 06 |
olle |
911 |
{ |
1652 |
22 May 07 |
gregory |
912 |
fileStreamed.close(); // Important: This must be reached no |
1652 |
22 May 07 |
gregory |
// matter what! Even if an exception |
1652 |
22 May 07 |
gregory |
// occurs in the try block, whis must be |
1652 |
22 May 07 |
gregory |
// reached. Otherwise the file will be |
1652 |
22 May 07 |
gregory |
// locked by Xerver (locked by Java.exe) |
1652 |
22 May 07 |
gregory |
// until the garbage collector is runned |
1652 |
22 May 07 |
gregory |
// (and you don't know when it will run) |
1652 |
22 May 07 |
gregory |
// and detects that the file (the object |
1652 |
22 May 07 |
gregory |
// "fileStreamed") is no longer |
1652 |
22 May 07 |
gregory |
// referenced from anywhere else and it |
1652 |
22 May 07 |
gregory |
// release the file by automatic. Until |
1652 |
22 May 07 |
gregory |
// this happenes, no other application |
1652 |
22 May 07 |
gregory |
// can write to or rename this file |
1652 |
22 May 07 |
gregory |
// (however, this problem is solved with |
1652 |
22 May 07 |
gregory |
// this line). |
741 |
10 Oct 06 |
olle |
927 |
} |
1652 |
22 May 07 |
gregory |
928 |
} catch (Exception e) { |
741 |
10 Oct 06 |
olle |
929 |
if (b_showErrors) |
1652 |
22 May 07 |
gregory |
930 |
System.out.println("An error occured @ writeFileToStream:\n" |
1652 |
22 May 07 |
gregory |
931 |
+ e.getMessage()); |
741 |
10 Oct 06 |
olle |
932 |
} |
741 |
10 Oct 06 |
olle |
933 |
} |
741 |
10 Oct 06 |
olle |
934 |
} |