Index: lams_central/conf/security/Owasp.CsrfGuard.properties =================================================================== diff -u -r6116054d29807ae2c1f274fc324a507c2b3a0910 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_central/conf/security/Owasp.CsrfGuard.properties (.../Owasp.CsrfGuard.properties) (revision 6116054d29807ae2c1f274fc324a507c2b3a0910) +++ lams_central/conf/security/Owasp.CsrfGuard.properties (.../Owasp.CsrfGuard.properties) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -10,21 +10,66 @@ org.owasp.csrfguard.protected.assessmentDefineLater=/lams/tool/laasse10/authoring/definelater.do org.owasp.csrfguard.protected.assessmentSubmissionDeadline=/lams/tool/laasse10/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.chatDefineLater=/lams/tool/lachat11/authoring/definelater.do org.owasp.csrfguard.protected.chatSubmissionDeadline=/lams/tool/lachat11/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.dacoDefineLater=/lams/tool/ladaco10/authoring/definelater.do +org.owasp.csrfguard.protected.dokuDefineLater=/lams/tool/ladoku11/authoring/definelater.do + +org.owasp.csrfguard.protected.forumDefineLater=/lams/tool/lafrum11/authoring/definelater.do org.owasp.csrfguard.protected.forumAuthoringSave=/lams/tool/lafrum11/authoring/update.do org.owasp.csrfguard.protected.forumSubmissionDeadline=/lams/tool/lafrum11/monitoring/setSubmissionDeadline.do org.owasp.csrfguard.protected.forumUpdateMark=/lams/tool/lafrum11/monitoring/updateMark.do + +org.owasp.csrfguard.protected.imagesDefineLater=/lams/tool/laimag10/authoring/definelater.do + +org.owasp.csrfguard.protected.imsccDefineLater=/lams/tool/laimsc11/authoring/definelater.do + +org.owasp.csrfguard.protected.lamcDefineLater=/lams/tool/lamc11/authoring/definelater.do org.owasp.csrfguard.protected.lamcSubmissionDeadline=/lams/tool/lamc11/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.laqaDefineLater=/lams/tool/laqa11/authoring/definelater.do org.owasp.csrfguard.protected.laqaSubmissionDeadline=/lams/tool/laqa11/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.larsrcDefineLater=/lams/tool/larsrc11/authoring/definelater.do + +org.owasp.csrfguard.protected.leaderDefineLater=/lams/tool/lalead11/authoring/definelater.do + +org.owasp.csrfguard.protected.mindmapDefineLater=/lams/tool/lamind10/authoring/definelater.do org.owasp.csrfguard.protected.mindmapSubmissionDeadline=/lams/tool/lamind10/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.nbDefineLater=/lams/tool/lanb11/authoring/definelater.do +org.owasp.csrfguard.protected.notebookDefineLater=/lams/tool/lantbk11/authoring/definelater.do org.owasp.csrfguard.protected.notebookSubmissionDeadline=/lams/tool/lantbk11/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.previewDefineLater=/lams/tool/laprev11/authoring/definelater.do +org.owasp.csrfguard.protected.pixirDefineLater=/lams/tool/lapixl10/authoring/definelater.do + +org.owasp.csrfguard.protected.sbmtDefineLater=/lams/tool/lasbmt11/authoring/definelater.do org.owasp.csrfguard.protected.sbmtSubmissionDeadline=/lams/tool/lasbmt11/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.scribeDefineLater=/lams/tool/lascrb11/authoring/definelater.do + +org.owasp.csrfguard.protected.scratchieDefineLater=/lams/tool/lascrt11/authoring/definelater.do org.owasp.csrfguard.protected.scratchieSubmissionDeadline=/lams/tool/lascrt11/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.spreadsheetDefineLater=/lams/tool/lasprd10/authoring/definelater.do + +org.owasp.csrfguard.protected.surveyDefineLater=/lams/tool/lasurv11/authoring/definelater.do +org.owasp.csrfguard.protected.surveyDefineLater=/lams/tool/lasurv11/authoring/definelater.do org.owasp.csrfguard.protected.surveySubmissionDeadline=/lams/tool/lasurv11/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.taskDefineLater=/lams/tool/latask10/authoring/definelater.do org.owasp.csrfguard.protected.taskSubmissionDeadline=/lams/tool/latask10/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.voteDefineLater=/lams/tool/lavote11/authoring/definelater.do org.owasp.csrfguard.protected.voteSubmissionDeadline=/lams/tool/lavote11/monitoring/setSubmissionDeadline.do + +org.owasp.csrfguard.protected.wikiDefineLater=/lams/tool/lawiki10/authoring/definelater.do org.owasp.csrfguard.protected.wikiSubmissionDeadline=/lams/tool/lawiki10/monitoring/setSubmissionDeadline.do +org.owasp.csrfguard.protected.zoomDefineLater=/lams/tool/lazoom10/authoring/definelater.do # Actions to take when a CSRF attack is attempted org.owasp.csrfguard.action.Log=org.owasp.csrfguard.action.Log Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/AuthoringController.java =================================================================== diff -u -r67d7232f087b9f5c72ff41f7bbebe29cff81e099 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 67d7232f087b9f5c72ff41f7bbebe29cff81e099) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -85,6 +85,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; @@ -118,7 +119,7 @@ return readDatabaseData(assessmentForm, request, mode); } - @RequestMapping("/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) public String definelater(@ModelAttribute("assessmentForm") AssessmentForm assessmentForm, HttpServletRequest request) throws ServletException { // update define later flag to true Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/controller/AuthoringController.java =================================================================== diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -48,6 +48,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/authoring") @@ -73,12 +74,8 @@ */ @RequestMapping("/authoring") public String unspecified(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) { - // Extract toolContentID from parameters. Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); - - String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); - ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); // retrieving Chat with given toolContentID @@ -90,17 +87,33 @@ // TODO NOTE: this causes DB orphans when LD not saved. } - if (mode.isTeacher()) { - // Set the defineLater flag so that learners cannot use content - // while we - // are editing. This flag is released when updateContent is called. - chat.setDefineLater(true); - chatService.saveOrUpdateChat(chat); + return readDatabaseData(authoringForm, chat, request, mode); + } - //audit log the teacher has started editing activity in monitor - chatService.auditLogStartEditingActivityInMonitor(toolContentID); - } + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + Chat chat = chatService.getChatByContentId(toolContentID); + chat.setDefineLater(true); + chatService.saveOrUpdateChat(chat); + //audit log the teacher has started editing activity in monitor + chatService.auditLogStartEditingActivityInMonitor(toolContentID); + + return readDatabaseData(authoringForm, chat, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(AuthoringForm authoringForm, Chat chat, HttpServletRequest request, ToolAccessMode mode) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + // Set up the authForm. updateAuthForm(authoringForm, chat); Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/controller/MonitoringController.java =================================================================== diff -u -r1beaa4cc5e224dd433297d543c5511234c0bfc10 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 1beaa4cc5e224dd433297d543c5511234c0bfc10) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -23,7 +23,6 @@ package org.lamsfoundation.lams.tool.chat.web.controller; -import java.io.IOException; import java.util.Date; import java.util.Iterator; import java.util.List; @@ -61,7 +60,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.context.WebApplicationContext; @Controller @RequestMapping("/monitoring") @@ -76,9 +74,6 @@ @Qualifier("chatMessageService") private MessageService messageService; - @Autowired - private WebApplicationContext applicationContext; - @RequestMapping("/monitoring") public String unspecified(HttpServletRequest request) { Index: lams_tool_chat/web/pages/monitoring/editActivity.jsp =================================================================== diff -u -r903574fa3e87a5a85057a975acfe6ccfba0b9de0 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_chat/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 903574fa3e87a5a85057a975acfe6ccfba0b9de0) +++ lams_tool_chat/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -29,12 +29,12 @@ - - - - - - +
+ + + +
+ +
- Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/controller/AuthoringController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -612,7 +612,7 @@ return starting(authoringForm, request); } - @RequestMapping("/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) protected String defineLater(@ModelAttribute("authoringForm") DacoForm authoringForm, HttpServletRequest request) throws ServletException { // update define later flag to true Index: lams_tool_daco/web/WEB-INF/tlds/security/csrfguard.tld =================================================================== diff -u --- lams_tool_daco/web/WEB-INF/tlds/security/csrfguard.tld (revision 0) +++ lams_tool_daco/web/WEB-INF/tlds/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_daco/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_daco/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_daco/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -58,6 +58,10 @@ UTF-8 + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + hibernateFilter @@ -71,6 +75,10 @@ LocaleFilter /* + + CSRFGuard + *.do + @@ -151,6 +159,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_daco/web/common/taglibs.jsp =================================================================== diff -u -r5d60e2334cf6775f4e4afe5755a0e56ef78540c0 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_daco/web/common/taglibs.jsp (.../taglibs.jsp) (revision 5d60e2334cf6775f4e4afe5755a0e56ef78540c0) +++ lams_tool_daco/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,4 +1,5 @@ <%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-function" prefix="fn" %> <%@ taglib uri="tags-core" prefix="c" %> <%@ taglib uri="tags-fmt" prefix="fmt" %> Index: lams_tool_daco/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -rc7f58bf04c3ca0557a3d52e0ec23ae7b65423e12 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_daco/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision c7f58bf04c3ca0557a3d52e0ec23ae7b65423e12) +++ lams_tool_daco/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -33,11 +33,13 @@ - - - - - +
+ + + +
+ +
Index: lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/web/controller/AuthoringController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_doku/src/java/org/lamsfoundation/lams/tool/dokumaran/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -48,6 +48,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; /** * @author Steve.Ni @@ -79,7 +80,7 @@ return starting(authoringForm, request); } - @RequestMapping("/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) private String definelater(@ModelAttribute("authoringForm") DokumaranForm authoringForm, HttpServletRequest request) throws ServletException { Long contentId = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); Index: lams_tool_doku/web/WEB-INF/tlds/security/csrfguard.tld =================================================================== diff -u --- lams_tool_doku/web/WEB-INF/tlds/security/csrfguard.tld (revision 0) +++ lams_tool_doku/web/WEB-INF/tlds/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_doku/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_doku/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_doku/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -58,6 +58,10 @@ UTF-8 + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + hibernateFilter @@ -71,6 +75,10 @@ LocaleFilter /* + + CSRFGuard + *.do + spring @@ -149,6 +157,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_doku/web/common/taglibs.jsp =================================================================== diff -u -r1cef918442124e8d987a285095a7504e3bc00461 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_doku/web/common/taglibs.jsp (.../taglibs.jsp) (revision 1cef918442124e8d987a285095a7504e3bc00461) +++ lams_tool_doku/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,4 +1,5 @@ <%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-function" prefix="fn" %> <%@ taglib uri="tags-core" prefix="c" %> <%@ taglib uri="tags-fmt" prefix="fmt" %> Index: lams_tool_doku/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -r2eedef61b2d21ca355c22864c0beae490d8679a2 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_doku/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 2eedef61b2d21ca355c22864c0beae490d8679a2) +++ lams_tool_doku/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -29,11 +29,13 @@ - - - - - +
+ + + +
+ +
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/controller/AuthoringController.java =================================================================== diff -u -r2eb3170d6501ff5206577dcaa8881209033c1f49 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 2eb3170d6501ff5206577dcaa8881209033c1f49) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -108,7 +108,7 @@ return readDatabaseData(forumForm, request); } - @RequestMapping("/defineLater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) public String defineLater(@ModelAttribute ForumForm forumForm, HttpServletRequest request) { // update define later flag to true Index: lams_tool_forum/web/jsps/monitoring/editactivity.jsp =================================================================== diff -u -r24ebb6c91f49a10f1e5718036b3a3c1a80c3314f -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_forum/web/jsps/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 24ebb6c91f49a10f1e5718036b3a3c1a80c3314f) +++ lams_tool_forum/web/jsps/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -30,12 +30,13 @@ - - - - - - +
+ + + +
+ +
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/controller/AuthoringController.java =================================================================== diff -u -rf9906f0846542026549f8e9cb1bc93adfd985852 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f9906f0846542026549f8e9cb1bc93adfd985852) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -103,7 +103,7 @@ return readDatabaseData(imageGalleryForm, request); } - @RequestMapping("/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) public String defineLater(@ModelAttribute ImageGalleryForm imageGalleryForm, HttpServletRequest request) throws ServletException { Index: lams_tool_images/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -r9e395fca5d7eb4a5ac4c9768642a336723a950f7 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_images/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 9e395fca5d7eb4a5ac4c9768642a336723a950f7) +++ lams_tool_images/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -29,11 +29,13 @@ - - - - - +
+ + + +
+ +
Index: lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/web/controller/AuthoringController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_imscc/src/java/org/lamsfoundation/lams/tool/commonCartridge/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -293,7 +293,6 @@ * @throws ServletException * */ - @RequestMapping("/start") private String start(@ModelAttribute("authoringForm") CommonCartridgeForm authoringForm, HttpServletRequest request) throws ServletException { @@ -302,7 +301,7 @@ return starting(authoringForm, request); } - @RequestMapping("/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) private String definelater(@ModelAttribute("authoringForm") CommonCartridgeForm authoringForm, HttpServletRequest request) throws ServletException { // update define later flag to true Index: lams_tool_imscc/web/WEB-INF/tlds/security/csrfguard.tld =================================================================== diff -u --- lams_tool_imscc/web/WEB-INF/tlds/security/csrfguard.tld (revision 0) +++ lams_tool_imscc/web/WEB-INF/tlds/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_imscc/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_imscc/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_imscc/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -58,6 +58,10 @@ UTF-8 + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + hibernateFilter @@ -71,6 +75,10 @@ LocaleFilter /* + + CSRFGuard + *.do + @@ -161,6 +169,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_imscc/web/common/taglibs.jsp =================================================================== diff -u -r1d6eef003bf303f75c5405b66a13ac86232cec03 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_imscc/web/common/taglibs.jsp (.../taglibs.jsp) (revision 1d6eef003bf303f75c5405b66a13ac86232cec03) +++ lams_tool_imscc/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,4 +1,5 @@ <%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-function" prefix="fn" %> <%@ taglib uri="tags-core" prefix="c" %> <%@ taglib uri="tags-fmt" prefix="fmt" %> Index: lams_tool_imscc/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -r1d6eef003bf303f75c5405b66a13ac86232cec03 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_imscc/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 1d6eef003bf303f75c5405b66a13ac86232cec03) +++ lams_tool_imscc/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -31,11 +31,13 @@ - - - - - +
+ + + +
+ +
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McController.java =================================================================== diff -u -r6ec43132d9df310eebff50fac6fca9f095757bd7 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McController.java (.../McController.java) (revision 6ec43132d9df310eebff50fac6fca9f095757bd7) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/controller/McController.java (.../McController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -61,6 +61,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; /** * Action class that controls the logic of tool behavior. @@ -82,7 +83,26 @@ @RequestMapping("/authoring") public String execute(@ModelAttribute McAuthoringForm mcAuthoringForm, HttpServletRequest request) { + ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); + return readDatabaseData(mcAuthoringForm, request, mode); + } + + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute McAuthoringForm mcAuthoringForm, HttpServletRequest request) { + String strToolContentID = request.getParameter(AttributeNames.PARAM_TOOL_CONTENT_ID); + mcService.setDefineLater(strToolContentID, true); + return readDatabaseData(mcAuthoringForm, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(McAuthoringForm mcAuthoringForm, HttpServletRequest request, ToolAccessMode mode) { SessionMap sessionMap = new SessionMap<>(); request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap); String sessionMapId = sessionMap.getSessionID(); @@ -92,14 +112,8 @@ sessionMap.put(AttributeNames.PARAM_CONTENT_FOLDER_ID, contentFolderID); String strToolContentID = request.getParameter(AttributeNames.PARAM_TOOL_CONTENT_ID); sessionMap.put(AttributeNames.PARAM_TOOL_CONTENT_ID, strToolContentID); - ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); sessionMap.put(AttributeNames.ATTR_MODE, mode); - // request is from monitoring module - if (mode.isTeacher()) { - mcService.setDefineLater(strToolContentID, true); - } - if ((strToolContentID == null) || (strToolContentID.equals(""))) { return "McErrorBox"; } Index: lams_tool_lamc/web/monitoring/Edit.jsp =================================================================== diff -u -r903574fa3e87a5a85057a975acfe6ccfba0b9de0 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_lamc/web/monitoring/Edit.jsp (.../Edit.jsp) (revision 903574fa3e87a5a85057a975acfe6ccfba0b9de0) +++ lams_tool_lamc/web/monitoring/Edit.jsp (.../Edit.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -16,11 +16,12 @@ - - - - - - - - +
+ + + +
+ + + + Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/controller/QaAuthoringController.java =================================================================== diff -u -r69092337b728f903f824a74377bd0ebf9391120c -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/controller/QaAuthoringController.java (.../QaAuthoringController.java) (revision 69092337b728f903f824a74377bd0ebf9391120c) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/controller/QaAuthoringController.java (.../QaAuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -68,6 +68,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; /** * Q&A Tool's authoring methods. Additionally, there is one more method that initializes authoring and it's located in @@ -95,7 +96,26 @@ @RequestMapping("/authoring") public String execute(@ModelAttribute("authoringForm") QaAuthoringForm authoringForm, HttpServletRequest request) throws IOException, ServletException, QaApplicationException { + ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); + return readDatabaseData(authoringForm, request, mode); + } + + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute("authoringForm") QaAuthoringForm authoringForm, HttpServletRequest request) { + String strToolContentID = request.getParameter(AttributeNames.PARAM_TOOL_CONTENT_ID); + qaService.setDefineLater(strToolContentID, true); + return readDatabaseData(authoringForm, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(QaAuthoringForm authoringForm, HttpServletRequest request, ToolAccessMode mode) { QaUtils.cleanUpSessionAbsolute(request); String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); @@ -119,7 +139,7 @@ if (strToolContentID == null || strToolContentID.equals("")) { QaUtils.cleanUpSessionAbsolute(request); - throw new ServletException("No Tool Content ID found"); + throw new RuntimeException("No Tool Content ID found"); } QaContent qaContent = qaService.getQaContent(new Long(strToolContentID).longValue()); @@ -132,11 +152,6 @@ prepareDTOandForm(request, authoringForm, qaContent, qaService, sessionMap); - ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); - // request is from monitoring module - if (mode.isTeacher()) { - qaService.setDefineLater(strToolContentID, true); - } request.setAttribute(AttributeNames.ATTR_MODE, mode.toString()); SortedSet conditionList = getQaConditionList(sessionMap); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/controller/QaMonitoringController.java =================================================================== diff -u -r1beaa4cc5e224dd433297d543c5511234c0bfc10 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/controller/QaMonitoringController.java (.../QaMonitoringController.java) (revision 1beaa4cc5e224dd433297d543c5511234c0bfc10) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/controller/QaMonitoringController.java (.../QaMonitoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -53,10 +53,8 @@ import org.lamsfoundation.lams.tool.qa.model.QaSession; import org.lamsfoundation.lams.tool.qa.model.QaUsrResp; import org.lamsfoundation.lams.tool.qa.service.IQaService; -import org.lamsfoundation.lams.tool.qa.util.QaApplicationException; import org.lamsfoundation.lams.tool.qa.util.QaSessionComparator; import org.lamsfoundation.lams.tool.qa.util.QaUtils; -import org.lamsfoundation.lams.tool.qa.web.form.QaMonitoringForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.util.WebUtil; @@ -65,7 +63,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @@ -86,35 +83,25 @@ @Autowired private IQaService qaService; - @RequestMapping("/") - public String unspecified() throws IOException, ServletException, ToolException { - return null; - } - @RequestMapping("/monitoring") - private String execute(@ModelAttribute("qaMonitoringForm") QaMonitoringForm qaMonitoringForm, - HttpServletRequest request) throws IOException, ServletException, QaApplicationException { + private String execute(HttpServletRequest request) throws ServletException { QaUtils.cleanUpSessionAbsolute(request); String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); - qaMonitoringForm.setContentFolderID(contentFolderID); + request.setAttribute(AttributeNames.PARAM_CONTENT_FOLDER_ID, contentFolderID); String strToolContentID = request.getParameter(AttributeNames.PARAM_TOOL_CONTENT_ID); if ((strToolContentID == null) || (strToolContentID.length() == 0)) { QaUtils.cleanUpSessionAbsolute(request); throw new ServletException("No Tool Content ID found"); } - qaMonitoringForm.setToolContentID(strToolContentID); - String toolContentID = qaMonitoringForm.getToolContentID(); - QaContent qaContent = qaService.getQaContent(new Long(toolContentID).longValue()); + QaContent qaContent = qaService.getQaContent(new Long(strToolContentID).longValue()); if (qaContent == null) { QaUtils.cleanUpSessionAbsolute(request); throw new ServletException("Data not initialised in Monitoring"); - } + } - qaMonitoringForm.setCurrentTab("1"); - /* this section is related to summary tab. Starts here. */ // SessionMap sessionMap = new SessionMap(); // sessionMap.put(ACTIVITY_TITLE_KEY, qaContent.getTitle()); @@ -147,7 +134,7 @@ } request.setAttribute(LIST_ALL_GROUPS_DTO, groupDTOs); - // setting up the advanced summary for LDEV-1662 + // setting up the advanced summary request.setAttribute(QaAppConstants.ATTR_CONTENT, qaContent); boolean isGroupedActivity = qaService.isGroupedActivity(qaContent.getQaContentId()); Fisheye: Tag 7b3ea39ddf6e10186cf9916562121c205bb0e5ad refers to a dead (removed) revision in file `lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/form/QaMonitoringForm.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_laqa/web/monitoring/Edit.jsp =================================================================== diff -u -r7ea9b852e5fe8dc5688f983f162064d862f147de -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_laqa/web/monitoring/Edit.jsp (.../Edit.jsp) (revision 7ea9b852e5fe8dc5688f983f162064d862f147de) +++ lams_tool_laqa/web/monitoring/Edit.jsp (.../Edit.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -21,11 +21,12 @@ - - - - - - +
+ + + +
+ +
- \ No newline at end of file + Index: lams_tool_laqa/web/monitoring/MonitoringMaincontent.jsp =================================================================== diff -u -r1beaa4cc5e224dd433297d543c5511234c0bfc10 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_laqa/web/monitoring/MonitoringMaincontent.jsp (.../MonitoringMaincontent.jsp) (revision 1beaa4cc5e224dd433297d543c5511234c0bfc10) +++ lams_tool_laqa/web/monitoring/MonitoringMaincontent.jsp (.../MonitoringMaincontent.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -323,21 +323,6 @@ $('#edit-response-dialog').dialog( 'option' , 'responseUid' , responseUid ); $('#edit-response-dialog').dialog('open'); } - - function submitMonitoringMethod(actionMethod) { - document.forms.qaMonitoringForm.action=actionMethod+".do"; - document.forms.qaMonitoringForm.submit(); - } - - function submitMethod(actionMethod) { - submitMonitoringMethod(actionMethod); - } - - function submitModifyMonitoringQuestion(questionIndexValue, actionMethod) { - document.forms.qaMonitoringForm.questionIndex.value=questionIndexValue; - submitMethod(actionMethod); - } - function doSelectTab(tabId) { selectTab(tabId); @@ -347,14 +332,7 @@ - - - - - - - - + @@ -388,6 +366,5 @@ - Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/AuthoringController.java =================================================================== diff -u -r234809e3e6cc8d1978aa128d8d2cd91ccea41fb9 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 234809e3e6cc8d1978aa128d8d2cd91ccea41fb9) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -341,7 +341,7 @@ return readDatabaseData(startForm, request); } - @RequestMapping("/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) private String defineLater(@ModelAttribute("startForm") ResourceForm startForm, HttpServletRequest request) throws ServletException { Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); Index: lams_tool_larsrc/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_larsrc/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_larsrc/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -58,6 +58,10 @@ UTF-8 + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + hibernateFilter @@ -71,6 +75,10 @@ LocaleFilter /* + + CSRFGuard + *.do + @@ -160,6 +168,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_larsrc/web/common/taglibs.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_larsrc/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_larsrc/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,4 +1,5 @@ <%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-function" prefix="fn" %> <%@ taglib uri="tags-core" prefix="c" %> <%@ taglib uri="tags-fmt" prefix="fmt" %> Index: lams_tool_larsrc/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -r94e36ba92006160e48c47ff2a60bb4f525c011e1 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_larsrc/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 94e36ba92006160e48c47ff2a60bb4f525c011e1) +++ lams_tool_larsrc/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -29,11 +29,13 @@ - - - - - +
+ + + +
+ +
Index: lams_tool_leader/src/java/org/lamsfoundation/lams/tool/leaderselection/web/controller/AuthoringController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_leader/src/java/org/lamsfoundation/lams/tool/leaderselection/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_leader/src/java/org/lamsfoundation/lams/tool/leaderselection/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -60,16 +60,11 @@ /** * Default method when no dispatch parameter is specified. It is expected that the parameter * toolContentID will be passed in. This will be used to retrieve content for this tool. - * */ @RequestMapping("") protected String unspecified(AuthoringForm authoringForm, HttpServletRequest request) { - // Extract toolContentID from parameters. - Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); - - String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); - + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); // retrieving Leaderselection with given toolContentID @@ -81,17 +76,33 @@ // TODO NOTE: this causes DB orphans when LD not saved. } - if (mode.isTeacher()) { - // Set the defineLater flag so that learners cannot use content - // while we - // are editing. This flag is released when updateContent is called. - leaderselection.setDefineLater(true); - leaderselectionService.saveOrUpdateLeaderselection(leaderselection); + return readDatabaseData(authoringForm, leaderselection, request, mode); + } - //audit log the teacher has started editing activity in monitor - leaderselectionService.auditLogStartEditingActivityInMonitor(toolContentID); - } + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + Leaderselection leaderselection = leaderselectionService.getContentByContentId(toolContentID); + leaderselection.setDefineLater(true); + leaderselectionService.saveOrUpdateLeaderselection(leaderselection); + //audit log the teacher has started editing activity in monitor + leaderselectionService.auditLogStartEditingActivityInMonitor(toolContentID); + + return readDatabaseData(authoringForm, leaderselection, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(AuthoringForm authoringForm, Leaderselection leaderselection, HttpServletRequest request, ToolAccessMode mode) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + // Set up the authForm. authoringForm.setTitle(leaderselection.getTitle()); authoringForm.setInstructions(leaderselection.getInstructions()); Index: lams_tool_leader/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_leader/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_leader/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -44,6 +44,10 @@ org.lamsfoundation.lams.web.filter.LocaleFilter + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + SystemSessionFilter @@ -57,6 +61,10 @@ LocaleFilter /* + + CSRFGuard + *.do + @@ -149,6 +157,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_leader/web/common/taglibs.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_leader/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_leader/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,5 +1,5 @@ <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> - +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-core" prefix="c"%> <%@ taglib uri="tags-fmt" prefix="fmt"%> <%@ taglib uri="tags-lams" prefix="lams"%> Index: lams_tool_leader/web/pages/authoring/authoring.jsp =================================================================== diff -u -r24ebb6c91f49a10f1e5718036b3a3c1a80c3314f -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_leader/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision 24ebb6c91f49a10f1e5718036b3a3c1a80c3314f) +++ lams_tool_leader/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -25,7 +25,7 @@ - + Index: lams_tool_leader/web/pages/monitoring/editActivity.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_leader/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_leader/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -30,12 +30,13 @@

- - - - - - +

+ + + + + +

Index: lams_tool_leader/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -r5a0c67fe7b338c1f3ad27b7e309d993feb90a0b5 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_leader/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 5a0c67fe7b338c1f3ad27b7e309d993feb90a0b5) +++ lams_tool_leader/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,24 +1,15 @@ - -<%@ include file="/common/taglibs.jsp"%> <%@ page import="org.lamsfoundation.lams.tool.leaderselection.util.LeaderselectionConstants"%> - - - - - - - +<%@ include file="/common/taglibs.jsp"%> + + + <fmt:message key="activity.title" /> - - - - @@ -31,7 +22,6 @@ - @@ -61,5 +51,3 @@ - - Index: lams_tool_leader/web/pages/monitoring/summary.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_leader/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_leader/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,9 +1,9 @@ <%@ include file="/common/taglibs.jsp"%>
Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/controller/AuthoringController.java =================================================================== diff -u -r0ac951a5cbd9d468de8081247c169a6f92123126 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 0ac951a5cbd9d468de8081247c169a6f92123126) +++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -51,6 +51,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.fasterxml.jackson.databind.node.JsonNodeFactory; @@ -83,10 +84,7 @@ @RequestMapping("/authoring") public String unspecified(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request, HttpServletResponse response) { - - // Extract toolContentID from parameters. - Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); - String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); // retrieving Mindmap with given toolContentID @@ -109,16 +107,34 @@ mindmapService.saveMindmapNode(null, rootMindmapNode, 3l, childNodeName2, "#ffffff", null, mindmap, null); } - if (mode.isTeacher()) { - // Set the defineLater flag so that learners cannot use content - // while we are editing. This flag is released when updateContent is called. - mindmap.setDefineLater(true); - mindmapService.saveOrUpdateMindmap(mindmap); + return readDatabaseData(authoringForm, mindmap, request, mode); + } + + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + Mindmap mindmap = mindmapService.getMindmapByContentId(toolContentID); + mindmap.setDefineLater(true); + mindmapService.saveOrUpdateMindmap(mindmap); - //audit log the teacher has started editing activity in monitor - mindmapService.auditLogStartEditingActivityInMonitor(toolContentID); - } + //audit log the teacher has started editing activity in monitor + mindmapService.auditLogStartEditingActivityInMonitor(toolContentID); + return readDatabaseData(authoringForm, mindmap, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(AuthoringForm authoringForm, Mindmap mindmap, HttpServletRequest request, + ToolAccessMode mode) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + /* Mindmap Attributes */ request.setAttribute("mindmapId", mindmap.getUid()); Index: lams_tool_mindmap/web/pages/monitoring/editActivity.jsp =================================================================== diff -u -r30051fffcb1145cc1b8344135570c8266689e2fd -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_mindmap/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 30051fffcb1145cc1b8344135570c8266689e2fd) +++ lams_tool_mindmap/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -29,14 +29,14 @@

- - - - - +

+ + + +
- + Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/controller/NbAuthoringController.java =================================================================== diff -u -rb3b03858efeef1c37e36993757f56374a9f2b9f3 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/controller/NbAuthoringController.java (.../NbAuthoringController.java) (revision b3b03858efeef1c37e36993757f56374a9f2b9f3) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/controller/NbAuthoringController.java (.../NbAuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -96,7 +96,31 @@ @RequestMapping("/authoring") public String unspecified(@ModelAttribute NbAuthoringForm nbAuthoringForm, HttpServletRequest request, HttpServletResponse response) { + ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); + return readDatabaseData(nbAuthoringForm, request, mode); + } + + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute NbAuthoringForm nbAuthoringForm, HttpServletRequest request) { + Long contentId = WebUtil.readLongParam(request, NoticeboardConstants.TOOL_CONTENT_ID); + NoticeboardContent nb = nbService.retrieveNoticeboard(contentId); + nb.setDefineLater(true); + nbService.saveNoticeboard(nb); + // audit log the teacher has started editing activity in monitor + nbService.auditLogStartEditingActivityInMonitor(contentId); + + return readDatabaseData(nbAuthoringForm, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(NbAuthoringForm nbAuthoringForm, HttpServletRequest request, ToolAccessMode mode) { Long contentId = WebUtil.readLongParam(request, NoticeboardConstants.TOOL_CONTENT_ID); String contentFolderId = WebUtil.readStrParam(request, NoticeboardConstants.CONTENT_FOLDER_ID); @@ -147,14 +171,8 @@ boolean isDefineLater = Boolean.parseBoolean(nbAuthoringForm.getDefineLater()); nb.setDefineLater(isDefineLater); nbService.saveNoticeboard(nb); - - if (isDefineLater) { - request.setAttribute(AttributeNames.ATTR_MODE, ToolAccessMode.TEACHER.toString()); - - // audit log the teacher has started editing activity in monitor - nbService.auditLogStartEditingActivityInMonitor(contentId); - } } + request.setAttribute(AttributeNames.ATTR_MODE, mode); request.setAttribute(FORM, nbAuthoringForm); Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/controller/NbMonitoringController.java =================================================================== diff -u -rb3b03858efeef1c37e36993757f56374a9f2b9f3 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/controller/NbMonitoringController.java (.../NbMonitoringController.java) (revision b3b03858efeef1c37e36993757f56374a9f2b9f3) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/controller/NbMonitoringController.java (.../NbMonitoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -43,7 +43,7 @@ import org.lamsfoundation.lams.tool.noticeboard.service.INoticeboardService; import org.lamsfoundation.lams.tool.noticeboard.util.NbApplicationException; import org.lamsfoundation.lams.tool.noticeboard.util.NbWebUtil; -import org.lamsfoundation.lams.tool.noticeboard.web.form.NbMonitoringForm; +import org.lamsfoundation.lams.tool.noticeboard.web.form.MonitoringDTO; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.util.AttributeNames; import org.springframework.beans.factory.annotation.Autowired; @@ -65,11 +65,10 @@ @Autowired private INoticeboardService nbService; - public final static String FORM = "NbMonitoringForm"; + public final static String FORM = "MonitoringDTO"; @RequestMapping("/monitoring") - public String unspecified(@ModelAttribute NbMonitoringForm nbMonitoringForm, HttpServletRequest request) { - + public String unspecified(HttpServletRequest request) { Long toolContentId = NbWebUtil.convertToLong(request.getParameter(NoticeboardConstants.TOOL_CONTENT_ID)); String contentFolderID = WebUtil.readStrParam(request, NoticeboardConstants.CONTENT_FOLDER_ID); @@ -81,14 +80,16 @@ NoticeboardContent content = nbService.retrieveNoticeboard(toolContentId); - nbMonitoringForm.setTitle(content.getTitle()); - nbMonitoringForm.setBasicContent(content.getContent()); + MonitoringDTO monitoringDTO = new MonitoringDTO(); + request.setAttribute("monitoringDTO", monitoringDTO); + monitoringDTO.setTitle(content.getTitle()); + monitoringDTO.setBasicContent(content.getContent()); request.setAttribute(NoticeboardConstants.TOOL_CONTENT_ID, toolContentId); request.setAttribute(NoticeboardConstants.CONTENT_FOLDER_ID, contentFolderID); //Get the total number of learners that have participated in this tool activity - nbMonitoringForm.setTotalLearners(nbService.calculateTotalNumberOfUsers(toolContentId)); + monitoringDTO.setTotalLearners(nbService.calculateTotalNumberOfUsers(toolContentId)); Set sessions = content.getNbSessions(); Iterator i = sessions.iterator(); @@ -118,8 +119,8 @@ } } } - nbMonitoringForm.setGroupStatsMap(numUsersMap); - nbMonitoringForm.setSessionIdMap(sessionIdMap); + monitoringDTO.setGroupStatsMap(numUsersMap); + monitoringDTO.setSessionIdMap(sessionIdMap); boolean isGroupedActivity = nbService.isGroupedActivity(toolContentId); request.setAttribute("isGroupedActivity", isGroupedActivity); @@ -132,13 +133,13 @@ request.setAttribute("allowComments", content.isAllowComments()); String currentTab = WebUtil.readStrParam(request, AttributeNames.PARAM_CURRENT_TAB, true); - nbMonitoringForm.setCurrentTab(currentTab != null ? currentTab : "1"); - request.setAttribute(FORM, nbMonitoringForm); + monitoringDTO.setCurrentTab(currentTab != null ? currentTab : "1"); + return "/monitoring/monitoring"; } @RequestMapping("/viewReflection") - public String viewReflection(@ModelAttribute NbMonitoringForm nbMonitoringForm, HttpServletRequest request) { + public String viewReflection(HttpServletRequest request) { Long userId = NbWebUtil.convertToLong(request.getParameter(NoticeboardConstants.USER_ID)); Long toolSessionId = NbWebUtil.convertToLong(request.getParameter(NoticeboardConstants.TOOL_SESSION_ID)); NoticeboardUser nbUser = nbService.retrieveNoticeboardUser(userId, toolSessionId); @@ -153,8 +154,7 @@ } @RequestMapping("/viewComments") - public String viewComments(@ModelAttribute NbMonitoringForm nbMonitoringForm, HttpServletRequest request) { - + public String viewComments(HttpServletRequest request) { Long toolSessionID = WebUtil.readLongParam(request, NoticeboardConstants.TOOL_SESSION_ID, false); NoticeboardContent nbContent = nbService.retrieveNoticeboardBySessionID(toolSessionID); Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/form/MonitoringDTO.java =================================================================== diff -u --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/form/MonitoringDTO.java (revision 0) +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/form/MonitoringDTO.java (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,107 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.noticeboard.web.form; + +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.log4j.Logger; + +/** + * @author mtruong + */ +public class MonitoringDTO { + private String toolContentID; + private String currentTab; + /* Only valid when form just set up by Java. Values are not returned from jsp page */ + private String title; + private String basicContent; + private Integer totalLearners; + private Map groupStatsMap; + private Map sessionIdMap; + + /** + * @return Returns the toolContentId. + */ + public String getToolContentID() { + return toolContentID; + } + + /** + * @param toolContentId + * The toolContentId to set. + */ + public void setToolContentID(String toolContentId) { + this.toolContentID = toolContentId; + } + + public String getCurrentTab() { + return currentTab; + } + + public void setCurrentTab(String currentTab) { + this.currentTab = currentTab; + } + + public String getBasicContent() { + return basicContent; + } + + public String getTitle() { + return title; + } + + public void setBasicContent(String basicContent) { + this.basicContent = basicContent; + } + + public void setTitle(String title) { + this.title = title; + } + + public Map getGroupStatsMap() { + return groupStatsMap; + } + + public void setGroupStatsMap(Map groupStatsMap) { + this.groupStatsMap = groupStatsMap; + } + + public Integer getTotalLearners() { + return totalLearners; + } + + public void setTotalLearners(Integer totalLearners) { + this.totalLearners = totalLearners; + } + + public Map getSessionIdMap() { + return sessionIdMap; + } + + public void setSessionIdMap(Map sessionIdMap) { + this.sessionIdMap = sessionIdMap; + } +} Fisheye: Tag 7b3ea39ddf6e10186cf9916562121c205bb0e5ad refers to a dead (removed) revision in file `lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/web/form/NbMonitoringForm.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_nb/web/WEB-INF/tlds/security/csrfguard.tld =================================================================== diff -u --- lams_tool_nb/web/WEB-INF/tlds/security/csrfguard.tld (revision 0) +++ lams_tool_nb/web/WEB-INF/tlds/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_nb/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_nb/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_nb/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -57,6 +57,10 @@ UTF-8 + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + hibernateFilter @@ -70,6 +74,10 @@ LocaleFilter /* + + CSRFGuard + *.do + spring @@ -164,6 +172,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_nb/web/includes/taglibs.jsp =================================================================== diff -u -r69473b66bf1e9e304407c33f92791924ea9eefd2 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_nb/web/includes/taglibs.jsp (.../taglibs.jsp) (revision 69473b66bf1e9e304407c33f92791924ea9eefd2) +++ lams_tool_nb/web/includes/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,5 +1,5 @@ <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> - +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-function" prefix="fn" %> <%@ taglib uri="tags-core" prefix="c"%> <%@ taglib uri="tags-fmt" prefix="fmt"%> Index: lams_tool_nb/web/monitoring/m_EditActivity.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_nb/web/monitoring/m_EditActivity.jsp (.../m_EditActivity.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_nb/web/monitoring/m_EditActivity.jsp (.../m_EditActivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -2,7 +2,7 @@
- + @@ -14,26 +14,27 @@ - + - +

- - - - - - +

+ + + + + +

Index: lams_tool_nb/web/monitoring/m_Statistics.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_nb/web/monitoring/m_Statistics.jsp (.../m_Statistics.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_nb/web/monitoring/m_Statistics.jsp (.../m_Statistics.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -8,13 +8,13 @@ - + @@ -26,9 +26,9 @@
- +
- + - + Index: lams_tool_nb/web/monitoring/m_Summary.jsp =================================================================== diff -u -r69473b66bf1e9e304407c33f92791924ea9eefd2 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_nb/web/monitoring/m_Summary.jsp (.../m_Summary.jsp) (revision 69473b66bf1e9e304407c33f92791924ea9eefd2) +++ lams_tool_nb/web/monitoring/m_Summary.jsp (.../m_Summary.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -9,8 +9,8 @@
-

-
+

+

Index: lams_tool_nb/web/monitoring/monitoring.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_nb/web/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_nb/web/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -13,15 +13,15 @@ + <fmt:message key="activity.title" /> + - <fmt:message key="activity.title" /> - - + Index: lams_tool_notebook/web/pages/monitoring/editActivity.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_notebook/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_notebook/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -28,12 +28,13 @@
- - - - - - +
+ + + +
+ +
Index: lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/web/controller/AuthoringController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -55,6 +55,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; @Controller @@ -83,16 +84,9 @@ @RequestMapping("") protected String unspecified(@ModelAttribute("authoringForm") AuthoringForm authoringForm, HttpServletRequest request) { - - // Extract toolContentID from parameters. - Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); - - String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); - + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); - // set up pixlrService - // retrieving Pixlr with given toolContentID Pixlr pixlr = pixlrService.getPixlrByContentId(toolContentID); if (pixlr == null) { @@ -102,17 +96,34 @@ // TODO NOTE: this causes DB orphans when LD not saved. } - if (mode.isTeacher()) { - // Set the defineLater flag so that learners cannot use content - // while we - // are editing. This flag is released when updateContent is called. - pixlr.setDefineLater(true); - pixlrService.saveOrUpdatePixlr(pixlr); + return readDatabaseData(authoringForm, pixlr, request, mode); + } + + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + Pixlr pixlr = pixlrService.getPixlrByContentId(toolContentID); + pixlr.setDefineLater(true); + pixlrService.saveOrUpdatePixlr(pixlr); - //audit log the teacher has started editing activity in monitor - pixlrService.auditLogStartEditingActivityInMonitor(toolContentID); - } + //audit log the teacher has started editing activity in monitor + pixlrService.auditLogStartEditingActivityInMonitor(toolContentID); + return readDatabaseData(authoringForm, pixlr, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(AuthoringForm authoringForm, Pixlr pixlr, HttpServletRequest request, + ToolAccessMode mode) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + String imageUrl = PixlrConstants.LAMS_WWW_PIXLR_FOLDER_URL; Boolean imageExists = false; if ((pixlr.getImageFileName() != null && !pixlr.getImageFileName().equals(""))) { Index: lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/web/controller/MonitoringController.java =================================================================== diff -u -rb7b682644cd1d20e061092b1411eeb679a1f9fb2 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/web/controller/MonitoringController.java (.../MonitoringController.java) (revision b7b682644cd1d20e061092b1411eeb679a1f9fb2) +++ lams_tool_pixlr/src/java/org/lamsfoundation/lams/tool/pixlr/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -43,18 +43,6 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; -/** - * @author - * @version - * - * - * - * - * - * - * - * - */ @Controller @RequestMapping("/monitoring") public class MonitoringController { Index: lams_tool_pixlr/web/WEB-INF/tlds/security/csrfguard.tld =================================================================== diff -u --- lams_tool_pixlr/web/WEB-INF/tlds/security/csrfguard.tld (revision 0) +++ lams_tool_pixlr/web/WEB-INF/tlds/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_pixlr/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_pixlr/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_pixlr/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -43,6 +43,10 @@ org.lamsfoundation.lams.web.filter.LocaleFilter + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + SystemSessionFilter @@ -56,6 +60,10 @@ LocaleFilter /* + + CSRFGuard + *.do + @@ -169,6 +177,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_pixlr/web/common/taglibs.jsp =================================================================== diff -u -r46e01bf046d755f571ba59957ac869c086bad58c -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_pixlr/web/common/taglibs.jsp (.../taglibs.jsp) (revision 46e01bf046d755f571ba59957ac869c086bad58c) +++ lams_tool_pixlr/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,5 +1,5 @@ <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> - +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-core" prefix="c"%> <%@ taglib uri="tags-fmt" prefix="fmt"%> <%@ taglib uri="tags-function" prefix="fn" %> Index: lams_tool_pixlr/web/pages/authoring/authoring.jsp =================================================================== diff -u -raced7ba6c1e7c5a9a50d3f64d8cdd96dd7e76194 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_pixlr/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision aced7ba6c1e7c5a9a50d3f64d8cdd96dd7e76194) +++ lams_tool_pixlr/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -55,7 +55,7 @@ } - + Index: lams_tool_pixlr/web/pages/monitoring/editActivity.jsp =================================================================== diff -u -r46e01bf046d755f571ba59957ac869c086bad58c -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_pixlr/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 46e01bf046d755f571ba59957ac869c086bad58c) +++ lams_tool_pixlr/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -28,12 +28,13 @@ - - - - - - +
+ + + +
+ +
Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/AuthoringController.java =================================================================== diff -u -r2ebad3a3c94cec1580e3b4d9c076773d78a5cc29 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 2ebad3a3c94cec1580e3b4d9c076773d78a5cc29) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -51,6 +51,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; /** * @author Steve.Ni @@ -75,7 +76,7 @@ return doStart(peerreviewForm, request, session); } - @RequestMapping("/defineLater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) public String defineLater(@ModelAttribute PeerreviewForm peerreviewForm, HttpServletRequest request, HttpSession session) throws ServletException { // update define later flag to true Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/MonitoringController.java =================================================================== diff -u -rf13b8a48b9a1cfaee56a654ba751a9736616b726 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/MonitoringController.java (.../MonitoringController.java) (revision f13b8a48b9a1cfaee56a654ba751a9736616b726) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -81,10 +81,6 @@ @Autowired @Qualifier("peerreviewService") private IPeerreviewService service; - -// private void addTab(HttpServletRequest request) { -// request.setAttribute("initialTabId", WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB, true)); -// } @RequestMapping("/summary") public String summary(HttpServletRequest request, Index: lams_tool_preview/web/WEB-INF/tlds/security/csrfguard.tld =================================================================== diff -u --- lams_tool_preview/web/WEB-INF/tlds/security/csrfguard.tld (revision 0) +++ lams_tool_preview/web/WEB-INF/tlds/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_preview/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_preview/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_preview/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -51,6 +51,10 @@ UTF-8 + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + hibernateFilter @@ -64,6 +68,10 @@ LocaleFilter /* + + CSRFGuard + *.do + @@ -173,6 +181,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_preview/web/common/taglibs.jsp =================================================================== diff -u -r1042117ad93a6a9f93d8b1c8be7e718b7efd383f -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_preview/web/common/taglibs.jsp (.../taglibs.jsp) (revision 1042117ad93a6a9f93d8b1c8be7e718b7efd383f) +++ lams_tool_preview/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,4 +1,5 @@ <%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-function" prefix="fn" %> <%@ taglib uri="tags-core" prefix="c" %> <%@ taglib uri="tags-fmt" prefix="fmt" %> Index: lams_tool_preview/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -rd2d109684f5c5eaa4c7638861c86a31beb877eb5 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_preview/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision d2d109684f5c5eaa4c7638861c86a31beb877eb5) +++ lams_tool_preview/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -2,7 +2,6 @@ - @@ -30,11 +29,13 @@ - - - - - +
+ + + +
+ +
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/AuthoringController.java =================================================================== diff -u -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/AuthoringController.java (.../AuthoringController.java) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -26,6 +26,7 @@ import java.lang.reflect.InvocationTargetException; import java.util.Date; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @@ -48,6 +49,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; /** * @author Manpreet Minhas @@ -69,32 +71,47 @@ */ @RequestMapping("/authoring") public String unspecified(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) { - ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); - - SessionMap sessionMap = new SessionMap<>(); - request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap); - sessionMap.put(AttributeNames.PARAM_MODE, mode); - Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); - String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); - // get back the upload file list and display them on page SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(contentID); - - if (mode.isTeacher()) { - persistContent.setDefineLater(true); - submitFilesService.saveOrUpdateContent(persistContent); - - //audit log the teacher has started editing activity in monitor - submitFilesService.auditLogStartEditingActivityInMonitor(contentID); - } - // if this content does not exist(empty without id), create a content by default content record. if (persistContent == null) { persistContent = submitFilesService.createDefaultContent(contentID); } + return readDatabaseData(authoringForm, persistContent, request, mode); + } + + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) + throws ServletException { + Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(contentID); + persistContent.setDefineLater(true); + submitFilesService.saveOrUpdateContent(persistContent); + + //audit log the teacher has started editing activity in monitor + submitFilesService.auditLogStartEditingActivityInMonitor(contentID); + + return readDatabaseData(authoringForm, persistContent, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(AuthoringForm authoringForm, SubmitFilesContent persistContent, HttpServletRequest request, + ToolAccessMode mode) { + SessionMap sessionMap = new SessionMap<>(); + request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap); + sessionMap.put(AttributeNames.PARAM_MODE, mode); + + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + // set back STRUTS component value authoringForm.initContentValue(persistContent); // session map Index: lams_tool_sbmt/web/WEB-INF/security/csrfguard.tld =================================================================== diff -u --- lams_tool_sbmt/web/WEB-INF/security/csrfguard.tld (revision 0) +++ lams_tool_sbmt/web/WEB-INF/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_sbmt/web/monitoring/parts/activity.jsp =================================================================== diff -u -re34c7b767eb34caebbfa0c9bdfb50d771d3b9d95 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_sbmt/web/monitoring/parts/activity.jsp (.../activity.jsp) (revision e34c7b767eb34caebbfa0c9bdfb50d771d3b9d95) +++ lams_tool_sbmt/web/monitoring/parts/activity.jsp (.../activity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -27,11 +27,12 @@ - - - - - - +
+ + + +
+ +
Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/AuthoringController.java =================================================================== diff -u -r74f5ff6df21a1a43759c86c80b66b447fe48b8fb -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 74f5ff6df21a1a43759c86c80b66b447fe48b8fb) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -104,7 +104,7 @@ } - @RequestMapping("/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) private String definelater(@ModelAttribute("authoringForm") ScratchieForm authoringForm, HttpServletRequest request) throws ServletException { // update define later flag to true Index: lams_tool_scratchie/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -rb18aa49cea9cab29bda065b37ee720bfa0a4ef6f -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_scratchie/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision b18aa49cea9cab29bda065b37ee720bfa0a4ef6f) +++ lams_tool_scratchie/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -28,10 +28,12 @@ - - - - - +
+ + + +
+ +
Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/controller/AuthoringController.java =================================================================== diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -52,6 +52,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/authoring") @@ -80,17 +81,11 @@ * Default method when no dispatch parameter is specified. It is expected * that the parameter toolContentID will be passed in. This * will be used to retrieve content for this tool. - * */ @RequestMapping("") protected String unspecified(@ModelAttribute("authoringForm") AuthoringForm authoringForm, HttpServletRequest request) { - - // Extract toolContentID from parameters. - Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); - - String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); - + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); // retrieving Scribe with given toolContentID @@ -112,17 +107,34 @@ return "common/message"; } - if (mode.isTeacher()) { - // Set the defineLater flag so that learners cannot use content - // while we - // are editing. This flag is released when updateContent is called. - scribe.setDefineLater(true); - scribeService.saveOrUpdateScribe(scribe); + return readDatabaseData(authoringForm, scribe, request, mode); + } + + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + Scribe scribe = scribeService.getScribeByContentId(toolContentID); + scribe.setDefineLater(true); + scribeService.saveOrUpdateScribe(scribe); - //audit log the teacher has started editing activity in monitor - scribeService.auditLogStartEditingActivityInMonitor(toolContentID); - } + //audit log the teacher has started editing activity in monitor + scribeService.auditLogStartEditingActivityInMonitor(toolContentID); + return readDatabaseData(authoringForm, scribe, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(AuthoringForm authoringForm, Scribe scribe, HttpServletRequest request, + ToolAccessMode mode) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + // Set up the authForm. updateAuthForm(authoringForm, scribe); Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/controller/MonitoringController.java =================================================================== diff -u -r770fb82629331ca1c70c47845ab63b9528b7bc9e -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 770fb82629331ca1c70c47845ab63b9528b7bc9e) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -51,17 +51,6 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; -/** - * @author - * @version - * - * - * - * - * - * - * - */ @Controller @RequestMapping("/monitoring") public class MonitoringController { Index: lams_tool_scribe/web/WEB-INF/tlds/security/csrfguard.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tlds/security/csrfguard.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/tlds/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_scribe/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_scribe/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_scribe/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -43,6 +43,10 @@ org.lamsfoundation.lams.web.filter.LocaleFilter + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + SystemSessionFilter @@ -56,6 +60,10 @@ LocaleFilter /* + + CSRFGuard + *.do + @@ -170,6 +178,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_scribe/web/common/taglibs.jsp =================================================================== diff -u -r770fb82629331ca1c70c47845ab63b9528b7bc9e -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_scribe/web/common/taglibs.jsp (.../taglibs.jsp) (revision 770fb82629331ca1c70c47845ab63b9528b7bc9e) +++ lams_tool_scribe/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,5 +1,5 @@ <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> - +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-core" prefix="c"%> <%@ taglib uri="tags-function" prefix="fn" %> <%@ taglib uri="tags-fmt" prefix="fmt"%> Index: lams_tool_scribe/web/pages/authoring/authoring.jsp =================================================================== diff -u -rf2d65d2b8661353a78d089679acc69b4cf58eab0 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_scribe/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision f2d65d2b8661353a78d089679acc69b4cf58eab0) +++ lams_tool_scribe/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -25,7 +25,7 @@ - + Index: lams_tool_scribe/web/pages/monitoring/editActivity.jsp =================================================================== diff -u -r770fb82629331ca1c70c47845ab63b9528b7bc9e -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_scribe/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 770fb82629331ca1c70c47845ab63b9528b7bc9e) +++ lams_tool_scribe/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -30,12 +30,13 @@ - - - - - - +
+ + + +
+ +
Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/controller/AuthoringController.java =================================================================== diff -u -r8fb34ff788990c3ae25a0661090636b38bdecec2 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 8fb34ff788990c3ae25a0661090636b38bdecec2) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -77,7 +77,7 @@ return readDatabaseData(spreadsheetForm, request); } - @RequestMapping("/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) public String defineLater(@ModelAttribute SpreadsheetForm spreadsheetForm, HttpServletRequest request) throws ServletException { Long contentId = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); Index: lams_tool_spreadsheet/web/WEB-INF/tlds/security/csrfguard.tld =================================================================== diff -u --- lams_tool_spreadsheet/web/WEB-INF/tlds/security/csrfguard.tld (revision 0) +++ lams_tool_spreadsheet/web/WEB-INF/tlds/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_spreadsheet/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_spreadsheet/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_spreadsheet/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -58,6 +58,10 @@ UTF-8 + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + hibernateFilter @@ -71,6 +75,10 @@ LocaleFilter /* + + CSRFGuard + *.do + @@ -152,6 +160,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_spreadsheet/web/common/taglibs.jsp =================================================================== diff -u -r977c1d91def623ad1c8d5adffb4b32c810ef1dc6 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_spreadsheet/web/common/taglibs.jsp (.../taglibs.jsp) (revision 977c1d91def623ad1c8d5adffb4b32c810ef1dc6) +++ lams_tool_spreadsheet/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,4 +1,5 @@ <%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-function" prefix="fn" %> <%@ taglib uri="tags-core" prefix="c" %> <%@ taglib uri="tags-fmt" prefix="fmt" %> Index: lams_tool_spreadsheet/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -rc6fc9e20588dbb45fc6aba99ebd1867a3b231f24 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_spreadsheet/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision c6fc9e20588dbb45fc6aba99ebd1867a3b231f24) +++ lams_tool_spreadsheet/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -30,11 +30,12 @@ - - - - - +
+ + + +
+ +
- \ No newline at end of file Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/controller/AuthoringController.java =================================================================== diff -u -rf613bbb4cf782af7b970335fa1b7a893e30dd718 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f613bbb4cf782af7b970335fa1b7a893e30dd718) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -349,7 +349,7 @@ return readDatabaseData(startForm, request); } - @RequestMapping(value = "/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) public String definelater(SurveyForm startForm, HttpServletRequest request) throws Exception { // update define later flag to true Long contentId = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); Index: lams_tool_survey/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_survey/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_survey/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -31,13 +31,14 @@ - - - - - - +
+ + + +
+ +
Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringController.java =================================================================== diff -u -r3bb7e0141ae1cc15ccd737c95d90b5762a34ad61 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 3bb7e0141ae1cc15ccd737c95d90b5762a34ad61) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -109,7 +109,7 @@ return readDatabaseData(taskListForm, request); } - @RequestMapping("/definelater") + @RequestMapping(path = "/definelater", method = RequestMethod.POST) public String defineLater(@ModelAttribute TaskListForm taskListForm, HttpServletRequest request) throws ServletException { // update define later flag to true Index: lams_tool_task/web/pages/monitoring/editactivity.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_task/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_task/web/pages/monitoring/editactivity.jsp (.../editactivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -30,10 +30,12 @@ - - - - - +
+ + + +
+ +
Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/controller/AuthoringController.java =================================================================== diff -u -r879fb356ece6075603479b01215a6b05465a59c8 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 879fb356ece6075603479b01215a6b05465a59c8) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -58,6 +58,7 @@ import org.springframework.stereotype.Controller; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; +import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -772,6 +773,26 @@ @RequestMapping("/start") public String start(VoteAuthoringForm voteAuthoringForm, HttpServletRequest request) { + ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); + return readDatabaseData(voteAuthoringForm, request, mode); + } + + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute VoteAuthoringForm voteAuthoringForm, HttpServletRequest request) { + String strToolContentId = request.getParameter(AttributeNames.PARAM_TOOL_CONTENT_ID); + VoteUtils.setDefineLater(request, true, strToolContentId, voteService); + + return readDatabaseData(voteAuthoringForm, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "start" and "defineLater" + */ + private String readDatabaseData(VoteAuthoringForm voteAuthoringForm, HttpServletRequest request, ToolAccessMode mode) { VoteGeneralAuthoringDTO voteGeneralAuthoringDTO = new VoteGeneralAuthoringDTO(); request.setAttribute(VoteAppConstants.VOTE_GENERAL_AUTHORING_DTO, voteGeneralAuthoringDTO); @@ -813,11 +834,6 @@ return "/error"; } - ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); - // request is from monitoring module - if (mode.isTeacher()) { - VoteUtils.setDefineLater(request, true, strToolContentId, voteService); - } request.setAttribute(AttributeNames.ATTR_MODE, mode.toString()); VoteContent voteContent = voteService.getVoteContent(new Long(strToolContentId)); Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/controller/MonitoringController.java =================================================================== diff -u -r1beaa4cc5e224dd433297d543c5511234c0bfc10 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 1beaa4cc5e224dd433297d543c5511234c0bfc10) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -48,7 +48,6 @@ import org.lamsfoundation.lams.tool.vote.model.VoteUsrAttempt; import org.lamsfoundation.lams.tool.vote.service.IVoteService; import org.lamsfoundation.lams.tool.vote.util.VoteComparator; -import org.lamsfoundation.lams.tool.vote.web.form.VoteMonitoringForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.util.WebUtil; @@ -115,12 +114,9 @@ } @RequestMapping("/getVoteNomination") - public String getVoteNomination(VoteMonitoringForm voteMonitoringForm, HttpServletRequest request) { - - voteMonitoringForm.setVoteService(voteService); - + public String getVoteNomination(HttpServletRequest request) { VoteGeneralMonitoringDTO voteGeneralMonitoringDTO = new VoteGeneralMonitoringDTO(); - MonitoringController.repopulateRequestParameters(request, voteMonitoringForm, voteGeneralMonitoringDTO); + MonitoringController.repopulateRequestParameters(request, voteGeneralMonitoringDTO); Long questionUid = WebUtil.readLongParam(request, VoteAppConstants.ATTR_QUESTION_UID, false); Long sessionUid = WebUtil.readLongParam(request, VoteAppConstants.ATTR_SESSION_UID, true); @@ -330,28 +326,23 @@ } @RequestMapping("/start") - public String start(VoteMonitoringForm voteMonitoringForm, HttpServletRequest request) { - + public String start(HttpServletRequest request) { VoteGeneralAuthoringDTO voteGeneralAuthoringDTO = new VoteGeneralAuthoringDTO(); VoteGeneralMonitoringDTO voteGeneralMonitoringDTO = new VoteGeneralMonitoringDTO(); request.setAttribute(VoteAppConstants.VOTE_GENERAL_AUTHORING_DTO, voteGeneralAuthoringDTO); request.setAttribute(VoteAppConstants.VOTE_GENERAL_MONITORING_DTO, voteGeneralMonitoringDTO); + + request.setAttribute(AttributeNames.PARAM_CONTENT_FOLDER_ID, + WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID)); - boolean validateParameters = validateParameters(request, voteMonitoringForm); - if (!validateParameters) { - return "/error"; - } - // initialiseMonitoringData voteGeneralMonitoringDTO.setRequestLearningReport(Boolean.FALSE.toString()); - /* we have made sure TOOL_CONTENT_ID is passed */ - String toolContentID = voteMonitoringForm.getToolContentID(); + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); logger.warn("Make sure ToolContentId is passed" + toolContentID); VoteContent voteContent = voteService.getVoteContent(new Long(toolContentID)); if (voteContent == null) { - logger.error("Vote Content does not exist"); voteGeneralMonitoringDTO.setUserExceptionContentDoesNotExist(Boolean.TRUE.toString()); return "/error"; @@ -391,11 +382,9 @@ DateUtil.convertToStringForJSON(submissionDeadline, request.getLocale())); } - voteMonitoringForm.setCurrentTab("1"); voteGeneralMonitoringDTO.setCurrentTab("1"); if (sessionDTOs.size() > 0) { - voteGeneralMonitoringDTO.setUserExceptionContentInUse(Boolean.TRUE.toString()); } @@ -405,8 +394,6 @@ SessionMap sessionMap = new SessionMap<>(); sessionMap.put(VoteAppConstants.ACTIVITY_TITLE_KEY, voteContent.getTitle()); sessionMap.put(VoteAppConstants.ACTIVITY_INSTRUCTIONS_KEY, voteContent.getInstructions()); - - voteMonitoringForm.setHttpSessionID(sessionMap.getSessionID()); request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap); List listQuestionDTO = new LinkedList(); @@ -431,7 +418,7 @@ voteGeneralAuthoringDTO.setActivityTitle(voteGeneralMonitoringDTO.getActivityTitle()); voteGeneralAuthoringDTO.setActivityInstructions(voteGeneralMonitoringDTO.getActivityInstructions()); - MonitoringController.repopulateRequestParameters(request, voteMonitoringForm, voteGeneralMonitoringDTO); + MonitoringController.repopulateRequestParameters(request, voteGeneralMonitoringDTO); boolean isGroupedActivity = voteService.isGroupedActivity(new Long(toolContentID)); request.setAttribute("isGroupedActivity", isGroupedActivity); @@ -440,24 +427,6 @@ return "/monitoring/MonitoringMaincontent"; } - private boolean validateParameters(HttpServletRequest request, VoteMonitoringForm voteMonitoringForm) { - String strToolContentId = request.getParameter(AttributeNames.PARAM_TOOL_CONTENT_ID); - - if ((strToolContentId == null) || (strToolContentId.length() == 0)) { - - return false; - } else { - try { - voteMonitoringForm.setToolContentID(strToolContentId); - } catch (NumberFormatException e) { - logger.error("Number Format Exception"); - - return false; - } - } - return true; - } - public static Map convertToVoteMonitoredUserDTOMap(List list) { Map map = new TreeMap(new VoteComparator()); @@ -474,18 +443,14 @@ return map; } - public static void repopulateRequestParameters(HttpServletRequest request, VoteMonitoringForm voteMonitoringForm, + public static void repopulateRequestParameters(HttpServletRequest request, VoteGeneralMonitoringDTO voteGeneralMonitoringDTO) { - String toolContentID = request.getParameter(VoteAppConstants.TOOL_CONTENT_ID); - voteMonitoringForm.setToolContentID(toolContentID); voteGeneralMonitoringDTO.setToolContentID(toolContentID); String responseId = request.getParameter(VoteAppConstants.RESPONSE_ID); - voteMonitoringForm.setResponseId(responseId); voteGeneralMonitoringDTO.setResponseId(responseId); String currentUid = request.getParameter(VoteAppConstants.CURRENT_UID); - voteMonitoringForm.setCurrentUid(currentUid); } } Fisheye: Tag 7b3ea39ddf6e10186cf9916562121c205bb0e5ad refers to a dead (removed) revision in file `lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/form/VoteMonitoringForm.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_vote/web/WEB-INF/security/csrfguard.tld =================================================================== diff -u --- lams_tool_vote/web/WEB-INF/security/csrfguard.tld (revision 0) +++ lams_tool_vote/web/WEB-INF/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_vote/web/authoring/BasicContent.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_vote/web/authoring/BasicContent.jsp (.../BasicContent.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_vote/web/authoring/BasicContent.jsp (.../BasicContent.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -26,11 +26,6 @@ document.forms.voteAuthoringForm.questionIndex.value=questionIndex; submitMethod('removeNomination'); } - - function removeMonitoringNomination(questionIndex){ - document.voteMonitoringForm.questionIndex.value=questionIndex; - submitMonitoringMethod('removeNomination'); - } function onSelectDataInput(){ Index: lams_tool_vote/web/monitoring/Edit.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_vote/web/monitoring/Edit.jsp (.../Edit.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_vote/web/monitoring/Edit.jsp (.../Edit.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -25,14 +25,15 @@ - - - - - - - - - +
+ + + +
+ + + + + Index: lams_tool_vote/web/monitoring/MonitoringMaincontent.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_vote/web/monitoring/MonitoringMaincontent.jsp (.../MonitoringMaincontent.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_vote/web/monitoring/MonitoringMaincontent.jsp (.../MonitoringMaincontent.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,34 +1,29 @@ - <%@ include file="/common/taglibs.jsp"%> - <%@ page import="java.util.LinkedHashSet" %> <%@ page import="java.util.Set" %> <%@ page import="org.lamsfoundation.lams.tool.vote.VoteAppConstants"%> - <fmt:message key="label.monitoring"/> <%@ include file="/common/monitorheader.jsp"%> - + + - - - - - - - - - - - @@ -124,10 +58,7 @@ - - - - + Index: lams_tool_vote/web/monitoring/OtherTextNominationViewer.jsp =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_vote/web/monitoring/OtherTextNominationViewer.jsp (.../OtherTextNominationViewer.jsp) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_tool_vote/web/monitoring/OtherTextNominationViewer.jsp (.../OtherTextNominationViewer.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,5 +1,4 @@ - <%@ include file="/common/taglibs.jsp"%> Index: lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/controller/AuthoringController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_wiki/src/java/org/lamsfoundation/lams/tool/wiki/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -74,20 +74,10 @@ private static final String KEY_MODE = "mode"; @RequestMapping("/authoring") - public String unspecified(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) - throws Exception { - - // Extract toolContentID from parameters. - Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); - - String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); - + public String unspecified(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); - // Set up the authForm. - - Long currentPageUid = authoringForm.getCurrentWikiPageId(); - // retrieving Wiki with given toolContentID Wiki wiki = wikiService.getWikiByContentId(toolContentID); if (wiki == null) { @@ -97,17 +87,36 @@ // TODO NOTE: this causes DB orphans when LD not saved. } - if (mode.isTeacher()) { - // Set the defineLater flag so that learners cannot use content - // while we - // are editing. This flag is released when updateContent is called. - wiki.setDefineLater(true); - wikiService.saveOrUpdateWiki(wiki); + return readDatabaseData(authoringForm, wiki, request, mode); + } + + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + Wiki wiki = wikiService.getWikiByContentId(toolContentID); + wiki.setDefineLater(true); + wikiService.saveOrUpdateWiki(wiki); - //audit log the teacher has started editing activity in monitor - wikiService.auditLogStartEditingActivityInMonitor(toolContentID); - } + //audit log the teacher has started editing activity in monitor + wikiService.auditLogStartEditingActivityInMonitor(toolContentID); + return readDatabaseData(authoringForm, wiki, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(AuthoringForm authoringForm, Wiki wiki, HttpServletRequest request, + ToolAccessMode mode) { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + + Long currentPageUid = authoringForm.getCurrentWikiPageId(); + // update the form updateAuthForm(authoringForm, wiki); Index: lams_tool_wiki/web/pages/monitoring/editActivity.jsp =================================================================== diff -u -r82c8ee6bc80d47736337c5b07ccc686c5ea3ba32 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_wiki/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 82c8ee6bc80d47736337c5b07ccc686c5ea3ba32) +++ lams_tool_wiki/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -29,13 +29,15 @@ - - - - - - +
+ + + +
+ +
+ Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/controller/AuthoringController.java =================================================================== diff -u -rf2ad75cef0c507a64877942631fee13efbc6ed50 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/controller/AuthoringController.java (.../AuthoringController.java) (revision f2ad75cef0c507a64877942631fee13efbc6ed50) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/controller/AuthoringController.java (.../AuthoringController.java) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -48,6 +48,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/authoring") @@ -63,12 +64,7 @@ @RequestMapping("/start") public String start(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) throws ServletException { - - // Extract toolContentID from parameters. - Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); - - String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); - + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); // retrieving Zoom with given toolContentID @@ -79,17 +75,34 @@ zoomService.saveOrUpdateZoom(zoom); } - if (mode.isTeacher()) { - // Set the defineLater flag so that learners cannot use content - // while we are editing. This flag is released when updateContent is - // called. - zoom.setDefineLater(true); - zoomService.saveOrUpdateZoom(zoom); + return readDatabaseData(authoringForm, zoom, request, mode); + } - //audit log the teacher has started editing activity in monitor - zoomService.auditLogStartEditingActivityInMonitor(toolContentID); - } + /** + * Set the defineLater flag so that learners cannot use content while we are editing. This flag is released when + * updateContent is called. + */ + @RequestMapping(path = "/definelater", method = RequestMethod.POST) + public String definelater(@ModelAttribute AuthoringForm authoringForm, HttpServletRequest request) throws ServletException { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + Zoom zoom = zoomService.getZoomByContentId(toolContentID); + zoom.setDefineLater(true); + zoomService.saveOrUpdateZoom(zoom); + //audit log the teacher has started editing activity in monitor + zoomService.auditLogStartEditingActivityInMonitor(toolContentID); + + return readDatabaseData(authoringForm, zoom, request, ToolAccessMode.TEACHER); + } + + /** + * Common method for "unspecified" and "defineLater" + */ + private String readDatabaseData(AuthoringForm authoringForm, Zoom zoom, HttpServletRequest request, + ToolAccessMode mode) throws ServletException { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + // Set up the authForm. copyProperties(authoringForm, zoom); Index: lams_tool_zoom/web/WEB-INF/tlds/security/csrfguard.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/security/csrfguard.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/security/csrfguard.tld (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -0,0 +1,70 @@ + + + + 1.2 + 2.0 + Owasp CsrfGuard Tag Library + http://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project/Owasp.CsrfGuard.tld + + token + org.owasp.csrfguard.tag.TokenTag + empty + + uri + false + true + + + + tokenname + org.owasp.csrfguard.tag.TokenNameTag + empty + + + tokenvalue + org.owasp.csrfguard.tag.TokenValueTag + empty + + uri + false + true + + + + a + org.owasp.csrfguard.tag.ATag + true + + + form + org.owasp.csrfguard.tag.FormTag + true + + Index: lams_tool_zoom/web/WEB-INF/web.xml =================================================================== diff -u -rb935721d25817b83c29d3166a7fa9b4b9b7d3785 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_zoom/web/WEB-INF/web.xml (.../web.xml) (revision b935721d25817b83c29d3166a7fa9b4b9b7d3785) +++ lams_tool_zoom/web/WEB-INF/web.xml (.../web.xml) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -53,6 +53,10 @@ org.lamsfoundation.lams.web.filter.LocaleFilter + + CSRFGuard + org.owasp.csrfguard.CsrfGuardFilter + SystemSessionFilter @@ -66,6 +70,10 @@ LocaleFilter /* + + CSRFGuard + *.do + @@ -179,6 +187,13 @@ tags-lams /WEB-INF/tlds/lams/lams.tld + + + + + csrfguard + /WEB-INF/tlds/security/csrfguard.tld + Index: lams_tool_zoom/web/common/taglibs.jsp =================================================================== diff -u -rcd28f26327e5afe5f9797847d801eba0abab9144 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_zoom/web/common/taglibs.jsp (.../taglibs.jsp) (revision cd28f26327e5afe5f9797847d801eba0abab9144) +++ lams_tool_zoom/web/common/taglibs.jsp (.../taglibs.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -1,6 +1,5 @@ -<%@ page language="java" pageEncoding="UTF-8" - contentType="text/html;charset=utf-8"%> - +<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> +<%@ taglib uri="csrfguard" prefix="csrf" %> <%@ taglib uri="tags-core" prefix="c"%> <%@ taglib uri="tags-fmt" prefix="fmt"%> <%@ taglib uri="tags-function" prefix="fn" %> Index: lams_tool_zoom/web/pages/monitoring/editActivity.jsp =================================================================== diff -u -rcd28f26327e5afe5f9797847d801eba0abab9144 -r7b3ea39ddf6e10186cf9916562121c205bb0e5ad --- lams_tool_zoom/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision cd28f26327e5afe5f9797847d801eba0abab9144) +++ lams_tool_zoom/web/pages/monitoring/editActivity.jsp (.../editActivity.jsp) (revision 7b3ea39ddf6e10186cf9916562121c205bb0e5ad) @@ -27,13 +27,13 @@ - - - - - - +
+ + + +
+ + -
+ -