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);