Index: lams_central/conf/xdoclet/web-security.xml
===================================================================
diff -u -rcdc1d6923a10a004d8ebb6046d9fa7141e834d31 -r9cf6f80b33044116d7378e7eb384f771ac486a6b
--- lams_central/conf/xdoclet/web-security.xml (.../web-security.xml) (revision cdc1d6923a10a004d8ebb6046d9fa7141e834d31)
+++ lams_central/conf/xdoclet/web-security.xml (.../web-security.xml) (revision 9cf6f80b33044116d7378e7eb384f771ac486a6b)
@@ -5,6 +5,7 @@
*.jsp
*.html
/index.jsp
+ /flashCrashDump
LEARNER
Index: lams_central/src/java/org/lamsfoundation/lams/web/FlashCrashDumpServlet.java
===================================================================
diff -u -rccbdf974fc22210cfc065234b274be6ca86447db -r9cf6f80b33044116d7378e7eb384f771ac486a6b
--- lams_central/src/java/org/lamsfoundation/lams/web/FlashCrashDumpServlet.java (.../FlashCrashDumpServlet.java) (revision ccbdf974fc22210cfc065234b274be6ca86447db)
+++ lams_central/src/java/org/lamsfoundation/lams/web/FlashCrashDumpServlet.java (.../FlashCrashDumpServlet.java) (revision 9cf6f80b33044116d7378e7eb384f771ac486a6b)
@@ -3,6 +3,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
+import org.apache.log4j.Logger;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.util.FileUtil;
import org.lamsfoundation.lams.util.wddx.FlashMessage;
@@ -22,17 +23,24 @@
*/
public class FlashCrashDumpServlet extends AbstractStoreWDDXPacketServlet {
+ private static Logger log = Logger.getLogger(HomeAction.class);
+
private static final String MESSAGE_KEY = "flashCrashDump";
private static final String PREFIX = "Flash_";
protected String process(String wddxPacket, HttpServletRequest request)
throws Exception
{
HttpSession ss = SessionManager.getSession();
- UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
- String id = PREFIX + ( user != null ? user.getLastName() : "unknown") + "_";
+ UserDTO user = ss !=null ? (UserDTO) ss.getAttribute(AttributeNames.USER) : null;
+ if ( user == null ) {
+ log.warn("Attempt to dump file by someone not logged in. SessionManager session is "+ss);
+ return new FlashMessage(MESSAGE_KEY,"User not logged in - unable to dump file.", FlashMessage.ERROR).serializeMessage();
+ }
- String filename = FileUtil.createDumpFile(wddxPacket.getBytes(), id);
+ String id = PREFIX + user.getLogin();
+
+ String filename = FileUtil.createDumpFile(wddxPacket.getBytes(), id, "xml");
FlashMessage flashMessage = new FlashMessage(MESSAGE_KEY,filename);
return flashMessage.serializeMessage();
}
Index: lams_central/web/WEB-INF/web.xml
===================================================================
diff -u -r124d40257e6f9b2eaf767862143e6669d656ce9b -r9cf6f80b33044116d7378e7eb384f771ac486a6b
--- lams_central/web/WEB-INF/web.xml (.../web.xml) (revision 124d40257e6f9b2eaf767862143e6669d656ce9b)
+++ lams_central/web/WEB-INF/web.xml (.../web.xml) (revision 9cf6f80b33044116d7378e7eb384f771ac486a6b)
@@ -77,6 +77,11 @@
+ flashCrashDump
+ org.lamsfoundation.lams.web.FlashCrashDumpServlet
+
+
+
storeLD
org.lamsfoundation.lams.authoring.web.StoreLDServlet
@@ -136,6 +141,8 @@
1
+
+
Connector
com.fredck.FCKeditor.connector.ConnectorServlet
@@ -150,6 +157,49 @@
1
+
+
+ SimpleUploader
+ com.fredck.FCKeditor.uploader.SimpleUploaderServlet
+
+ baseDir
+ /UserFiles/
+
+
+ debug
+ true
+
+
+ enabled
+ false
+
+
+ AllowedExtensionsFile
+
+
+
+ DeniedExtensionsFile
+ php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi
+
+
+ AllowedExtensionsImage
+ jpg|gif|jpeg|png|bmp
+
+
+ DeniedExtensionsImage
+
+
+
+ AllowedExtensionsFlash
+ swf|fla
+
+
+ DeniedExtensionsFlash
+
+
+ 1
+
+
Connector
- /editor/filemanager/browser/default/connectors/jsp/connector
+ /fckeditor/editor/filemanager/browser/default/connectors/jsp/connector
+
+
+ SimpleUploader
+ /fckeditor/editor/filemanager/upload/simpleuploader
+
+
+ flashCrashDump
+ /flashCrashDump
+
+
storeLD
/authoring/storeLearningDesignDetails
@@ -297,6 +358,7 @@
*.jsp
*.html
/index.jsp
+ /flashCrashDump
LEARNER
Index: lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java
===================================================================
diff -u -rccbdf974fc22210cfc065234b274be6ca86447db -r9cf6f80b33044116d7378e7eb384f771ac486a6b
--- lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision ccbdf974fc22210cfc065234b274be6ca86447db)
+++ lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision 9cf6f80b33044116d7378e7eb384f771ac486a6b)
@@ -22,7 +22,6 @@
import java.io.File;
import java.io.FileOutputStream;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
@@ -220,7 +219,7 @@
return dir.exists();
}
- private static String generateDumpFilename(String id) throws FileUtilException {
+ private static String generateDumpFilename(String id, String extension) throws FileUtilException {
// get dump directory name and make sure directory exists
String dumpDirectory = Configuration.get(ConfigurationKeys.LAMS_DUMP_DIR);
if ( dumpDirectory == null ) {
@@ -229,13 +228,15 @@
createDirectory(dumpDirectory);
String dumpFilename = dumpDirectory+File.separator
- +id+System.currentTimeMillis();
+ +id+System.currentTimeMillis()
+ +( extension != null ? "."+extension : "");
File dumpFile = new File(dumpFilename);
int i = 0;
while ( dumpFile.exists() && i < 100 ) {
dumpFilename = dumpDirectory+File.separator
- +id+System.currentTimeMillis()+"_"+i;
+ +id+System.currentTimeMillis()+"_"+i
+ +( extension != null ? "."+extension : "");
dumpFile = new File(dumpFilename);
}
if ( dumpFile.exists() ) {
@@ -256,12 +257,14 @@
*
* @param data data to dump
* @param id some identification name for the string. Does not need to be unique. e.g. FLASH_jsmith
+ * @param extension optional extension to be added to filename e.g. xml. Note: do not include the "." - that
+ * will be added automatically.
*
* @author Fiona Malikoff
* @throws FileUtilException
*/
- public static String createDumpFile(byte[] data, String id) throws FileUtilException {
- String dumpFilename = generateDumpFilename(id);
+ public static String createDumpFile(byte[] data, String id, String extension) throws FileUtilException {
+ String dumpFilename = generateDumpFilename(id, extension);
OutputStream dumpFile = null;
try {
dumpFile = new FileOutputStream(dumpFilename);
Index: lams_common/test/java/org/lamsfoundation/lams/util/TestFileUtil.java
===================================================================
diff -u -rccbdf974fc22210cfc065234b274be6ca86447db -r9cf6f80b33044116d7378e7eb384f771ac486a6b
--- lams_common/test/java/org/lamsfoundation/lams/util/TestFileUtil.java (.../TestFileUtil.java) (revision ccbdf974fc22210cfc065234b274be6ca86447db)
+++ lams_common/test/java/org/lamsfoundation/lams/util/TestFileUtil.java (.../TestFileUtil.java) (revision 9cf6f80b33044116d7378e7eb384f771ac486a6b)
@@ -231,7 +231,7 @@
{
byte[] testData = "This is my test string.".getBytes();
String indexString = "xyzzy_";
- String filename = FileUtil.createDumpFile(testData, indexString);
+ String filename = FileUtil.createDumpFile(testData, indexString, ".xml");
assertNotNull("Filename of dump file is not null", filename);
assertTrue("Filename includes id string ", filename.indexOf(indexString)!=-1);