Revision: 4183
Author: solomax666
Date: Sun Sep 4 06:59:47 2011
Log: - configuration parameter for maxUploadSize is added (defaulted
to 1GB)
http://code.google.com/p/openmeetings/source/detail?r=4183
Added:
/trunk/singlewebapp/src/app/org/openmeetings/utils/ImportHelper.java
Modified:
/trunk/singlewebapp/src/app/org/openmeetings/app/installation/ImportInitvalues.java
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImport.java
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/CalendarServlet.java
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/FileExplorerUploadHandler.java
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/HttpServletRequestEx.java
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/Import.java
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ScreenServlet.java
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/UploadHandler.java
/trunk/singlewebapp/src/app/org/openmeetings/utils/StoredFile.java
/trunk/singlewebapp/src/app/org/openmeetings/utils/image/ZipUtility.java
=======================================
--- /dev/null
+++ /trunk/singlewebapp/src/app/org/openmeetings/utils/ImportHelper.java
Sun Sep 4 06:59:47 2011
@@ -0,0 +1,30 @@
+package org.openmeetings.utils;
+
+import org.openmeetings.app.data.basic.Configurationmanagement;
+import org.openmeetings.app.persistence.beans.basic.Configuration;
+import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.red5.logging.Red5LoggerFactory;
+
+public class ImportHelper {
+ private static final org.slf4j.Logger log = Red5LoggerFactory.getLogger(
+ ImportHelper.class,
ScopeApplicationAdapter.webAppRootKey);
+ public static final int DEFAULT_MAX_UPLOAD_SIZE = 1024 * 1024 * 1024;
//1GB
+
+ public static final int getMaxUploadSize(Configurationmanagement
cfgManagement) {
+ return getMaxUploadSize(cfgManagement, 3L);
+ }
+
+ public static final int getMaxUploadSize(Configurationmanagement
cfgManagement, Long userLevel) {
+ Configuration cfg = cfgManagement.getConfKey(userLevel,
"cfgManagement");
+ int result = DEFAULT_MAX_UPLOAD_SIZE;
+ if (cfg != null) {
+ String val = cfg.getConf_value();
+ try {
+ result = (int)Math.min(Long.parseLong(val),
(long)Integer.MAX_VALUE);
+ } catch (Exception e) {
+ log.error("Invalid value saved for maxUploadSize:
" + val, e);
+ }
+ }
+ return result;
+ }
+}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/installation/ImportInitvalues.java
Tue Aug 30 13:17:16 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/installation/ImportInitvalues.java
Sun Sep 4 06:59:47 2011
@@ -24,6 +24,7 @@
import org.openmeetings.app.data.user.Usermanagement;
import org.openmeetings.app.persistence.beans.basic.OmTimeZone;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.ImportHelper;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -467,6 +468,9 @@
null,
"Display name of the user who draw the current object (User Name
auto-disapper after 3 seconds.");
+ cfgManagement.addConfByKey(3, "max_upload_size", new
Integer(ImportHelper.DEFAULT_MAX_UPLOAD_SIZE).toString(), null,
+ "Maximum size of upload file (bytes)");
//defaults to 1GB
+
}
public void loadDefaultRooms() {
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImport.java
Sun Sep 4 05:39:55 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImport.java
Sun Sep 4 06:59:47 2011
@@ -70,6 +70,7 @@
import org.openmeetings.app.persistence.beans.user.UserSipData;
import org.openmeetings.app.persistence.beans.user.Users;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.ImportHelper;
import org.openmeetings.utils.math.CalendarPatterns;
import org.openmeetings.utils.stringhandlers.StringComparer;
import org.red5.logging.Red5LoggerFactory;
@@ -175,7 +176,7 @@
}
ServletMultipartRequest upload = new
ServletMultipartRequest(
- httpServletRequest, 1000 * 1024 *
1024, "UTF8"); // max 1000MB
+ httpServletRequest, ImportHelper.getMaxUploadSize(cfgManagement,
user_level), "UTF8");
InputStream is =
upload.getFileContents("Filedata");
String fileSystemName =
upload.getBaseFilename("Filedata");
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/CalendarServlet.java
Thu Sep 1 07:57:50 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/CalendarServlet.java
Sun Sep 4 06:59:47 2011
@@ -233,8 +233,9 @@
appointment.setAppointmentEndtime(new
Date(appointment
.getAppointmentEndtime().getTime() + offset));
- int dayAsInt =
appointment.getAppointmentStarttime()
- .getDate();
+ Calendar appStart =
Calendar.getInstance();
+
appStart.setTime(appointment.getAppointmentStarttime());
+ int dayAsInt =
appStart.get(Calendar.DATE);
if (previousDay != dayAsInt) {
@@ -244,7 +245,7 @@
}
- if
(appointment.getAppointmentStarttime().getMonth() + 1 == Integer
+ if (appStart.get(Calendar.MONTH) + 1 ==
Integer
.parseInt(monthStr)) {
Element event =
day.addElement("event");
@@ -279,36 +280,29 @@
Element start =
event.addElement("start");
start.addAttribute("year", ""
- +
(appointment.getAppointmentStarttime()
-
.getYear() + 1900));
+ +
appStart.get(Calendar.YEAR));
start.addAttribute("month", ""
- +
(appointment.getAppointmentStarttime()
-
.getMonth() + 1));
+ +
(appStart.get(Calendar.MONTH) + 1));
start.addAttribute("day", ""
- +
appointment.getAppointmentStarttime()
-
.getDate());
+ +
appStart.get(Calendar.DATE));
start.addAttribute("hour", ""
- +
appointment.getAppointmentStarttime()
-
.getHours());
+ +
appStart.get(Calendar.HOUR_OF_DAY));
start.addAttribute("minute", ""
- +
appointment.getAppointmentStarttime()
-
.getMinutes());
-
+ +
appStart.get(Calendar.MINUTE));
+
+ Calendar appEnd =
Calendar.getInstance();
+
appEnd.setTime(appointment.getAppointmentEndtime());
Element end =
event.addElement("end");
end.addAttribute("year", ""
- +
(appointment.getAppointmentEndtime()
-
.getYear() + 1900));
+ +
appEnd.get(Calendar.YEAR));
end.addAttribute("month", ""
- +
(appointment.getAppointmentEndtime()
-
.getMonth() + 1));
+ +
(appEnd.get(Calendar.MONTH) + 1));
end.addAttribute("day", ""
- +
appointment.getAppointmentEndtime().getDate());
+ +
appEnd.get(Calendar.DATE));
end.addAttribute("hour", ""
- +
appointment.getAppointmentEndtime()
-
.getHours());
+ +
appEnd.get(Calendar.HOUR));
end.addAttribute("minute", ""
- +
appointment.getAppointmentEndtime()
-
.getMinutes());
+ +
appEnd.get(Calendar.MINUTE));
Element category =
event.addElement("category");
category.addAttribute("value",
""
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/FileExplorerUploadHandler.java
Thu Sep 1 07:41:20 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/FileExplorerUploadHandler.java
Sun Sep 4 06:59:47 2011
@@ -9,9 +9,11 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
+import org.openmeetings.app.data.basic.Configurationmanagement;
import org.openmeetings.app.data.file.FileProcessor;
import org.openmeetings.app.data.file.dao.FileExplorerItemDaoImpl;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.ImportHelper;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.context.ApplicationContext;
@@ -49,6 +51,19 @@
}
return null;
}
+
+ public Configurationmanagement getCfgManagement() {
+ try {
+ if (ScopeApplicationAdapter.initComplete) {
+ ApplicationContext context =
WebApplicationContextUtils
+
.getWebApplicationContext(getServletContext());
+ return (Configurationmanagement)
context.getBean("cfgManagement");
+ }
+ } catch (Exception err) {
+ log.error("[getUserManagement]", err);
+ }
+ return null;
+ }
@Override
protected void fileService(HttpServletRequest httpServletRequest,
@@ -85,8 +100,7 @@
String current_dir = getServletContext().getRealPath("/");
ServletMultipartRequest upload = new ServletMultipartRequest(
- httpServletRequest, 104857600 * 5, // max 500 mb
- "utf-8");
+ httpServletRequest,
ImportHelper.getMaxUploadSize(getCfgManagement()), "UTF8");
InputStream is = upload.getFileContents("Filedata");
String fileSystemName = upload.getBaseFilename("Filedata");
log.debug("fileSystemName: " + fileSystemName);
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/HttpServletRequestEx.java
Tue Aug 30 13:17:16 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/HttpServletRequestEx.java
Sun Sep 4 06:59:47 2011
@@ -61,11 +61,11 @@
}
}
- public Map getParameterMap() {
+ public Map<String, String> getParameterMap() {
return new HashMap<String, String>(requestParams_);
}
- public Enumeration getParameterNames() {
+ public Enumeration<String> getParameterNames() {
return Collections.enumeration(requestParams_.keySet());
}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/Import.java
Sun Sep 4 05:39:55 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/Import.java
Sun Sep 4 06:59:47 2011
@@ -13,12 +13,14 @@
import javax.servlet.http.HttpServletResponse;
import org.openmeetings.app.data.basic.AuthLevelmanagement;
+import org.openmeetings.app.data.basic.Configurationmanagement;
import org.openmeetings.app.data.basic.Sessionmanagement;
import org.openmeetings.app.data.user.Usermanagement;
import org.openmeetings.app.data.user.dao.UsersDaoImpl;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
import org.openmeetings.app.xmlimport.LanguageImport;
import org.openmeetings.app.xmlimport.UserImport;
+import org.openmeetings.utils.ImportHelper;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.context.ApplicationContext;
@@ -54,6 +56,19 @@
}
return null;
}
+
+ public Configurationmanagement getCfgManagement() {
+ try {
+ if (ScopeApplicationAdapter.initComplete) {
+ ApplicationContext context =
WebApplicationContextUtils
+
.getWebApplicationContext(getServletContext());
+ return (Configurationmanagement)
context.getBean("cfgManagement");
+ }
+ } catch (Exception err) {
+ log.error("[getUserManagement]", err);
+ }
+ return null;
+ }
public UsersDaoImpl getUsersDao() {
try {
@@ -157,7 +172,7 @@
// if (user_level!=null && user_level > 0) {
if
(getAuthLevelManagement().checkAdminLevel(user_level)) {
ServletMultipartRequest upload = new
ServletMultipartRequest(
- httpServletRequest, 100 * 1024 * 1024,
"UTF8"); // max 100MB
+ httpServletRequest,
ImportHelper.getMaxUploadSize(getCfgManagement(), user_level), "UTF8");
InputStream is =
upload.getFileContents("Filedata");
if (moduleName.equals("users")) {
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ScreenServlet.java
Thu Sep 1 07:57:50 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ScreenServlet.java
Sun Sep 4 06:59:47 2011
@@ -32,6 +32,7 @@
import org.openmeetings.app.persistence.beans.recording.RoomClient;
import org.openmeetings.app.remote.red5.ClientListManager;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.ImportHelper;
import org.openmeetings.utils.image.ImageUtility;
import org.openmeetings.utils.image.ZipUtility;
import org.openmeetings.utils.stringhandlers.StringComparer;
@@ -183,9 +184,8 @@
log.debug("record: " + record);
- @SuppressWarnings("deprecation")
ServletMultipartRequest upload = new
ServletMultipartRequest(
- httpServletRequest, 104857600); // max
100 mb
+ httpServletRequest,
ImportHelper.getMaxUploadSize(getCfgManagement()), "UTF8");
Long users_id =
getSessionManagement().checkSession(sid);
Long user_level =
getUserManagement().getUserLevelByID(users_id);
@@ -529,15 +529,14 @@
return;
// entzippen
- Object o =
ZipUtility.byteArraytoObject(ba);
- ArrayList al = (ArrayList) o;
-
- byte[] temps = (byte[]) al.get(0);
+ ArrayList<byte[]> al =
ZipUtility.<ArrayList<byte[]>>byteArraytoObject(ba);
+
+ byte[] temps = al.get(0);
BufferedImage bi =
ImageUtility.read(temps);
// trim whitespace
String fileSystemName =
StringUtils.deleteWhitespace(upload
-
.getFileSystemName("Filedata"));
+
.getBaseFilename("Filedata"));
String newFileSystemName =
StringComparer.getInstance()
.compareForRealPaths(
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/UploadHandler.java
Wed Aug 31 10:02:46 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/UploadHandler.java
Sun Sep 4 06:59:47 2011
@@ -16,6 +16,7 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
+import org.openmeetings.app.data.basic.Configurationmanagement;
import org.openmeetings.app.data.basic.Sessionmanagement;
import org.openmeetings.app.data.user.Usermanagement;
import org.openmeetings.app.data.user.dao.UsersDaoImpl;
@@ -24,6 +25,7 @@
import org.openmeetings.app.documents.GenerateThumbs;
import org.openmeetings.app.persistence.beans.user.Users;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.ImportHelper;
import org.openmeetings.utils.StoredFile;
import org.openmeetings.utils.stringhandlers.StringComparer;
import org.red5.logging.Red5LoggerFactory;
@@ -133,6 +135,19 @@
}
return null;
}
+
+ public Configurationmanagement getCfgManagement() {
+ try {
+ if (ScopeApplicationAdapter.initComplete) {
+ ApplicationContext context =
WebApplicationContextUtils
+
.getWebApplicationContext(getServletContext());
+ return (Configurationmanagement)
context.getBean("cfgManagement");
+ }
+ } catch (Exception err) {
+ log.error("[getUserManagement]", err);
+ }
+ return null;
+ }
@Override
protected void service(HttpServletRequest httpServletRequest,
@@ -208,12 +223,11 @@
boolean userProfile = moduleName.equals("userprofile");
ServletMultipartRequest upload = new ServletMultipartRequest(
- httpServletRequest, 104857600, "utf-8"); // max
100 mb
+ httpServletRequest,
ImportHelper.getMaxUploadSize(getCfgManagement()), "UTF8");
InputStream is = upload.getFileContents("Filedata");
// trim whitespace
- @SuppressWarnings("deprecation")
- String fileSystemName = upload.getFileSystemName("Filedata");
+ String fileSystemName = upload.getBaseFilename("Filedata");
fileSystemName = StringUtils.deleteWhitespace(fileSystemName);
// Flash cannot read the response of an upload
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/utils/StoredFile.java Fri
Jul 1 00:47:55 2011
+++ /trunk/singlewebapp/src/app/org/openmeetings/utils/StoredFile.java Sun
Sep 4 06:59:47 2011
@@ -37,7 +37,7 @@
Arrays.asList(new String[] { "jpg", "xchart" }));
private final String name;
- private final String ext;
+ private final String ext;
public StoredFile(String name, String ext) {
this.name = name;
@@ -94,4 +94,8 @@
public boolean isAsIs() {
return asIsExtensions.contains(ext);
}
-}
+
+ public String getName() {
+ return name;
+ }
+}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/utils/image/ZipUtility.java
Mon Oct 12 02:51:43 2009
+++
/trunk/singlewebapp/src/app/org/openmeetings/utils/image/ZipUtility.java
Sun Sep 4 06:59:47 2011
@@ -13,12 +13,13 @@
public class ZipUtility {
- public static Object byteArraytoObject(byte[] data) throws Exception {
+ @SuppressWarnings("unchecked")
+ public static <T> T byteArraytoObject(byte[] data) throws Exception {
ByteArrayInputStream bais = new ByteArrayInputStream(data);
ObjectInputStream ois = new ObjectInputStream(bais);
ois.close();
bais.close();
- return ois.readObject();
+ return (T)ois.readObject();
}
public static byte[] objecttoByteArray(Object obj) throws IOException {
--
You received this message because you are subscribed to the Google Groups
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/openmeetings-dev?hl=en.