Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/CreateLessonServlet.java =================================================================== diff -u -rd41e1b21d97c67d0e119094a0609078a1e1d0e3c -r604c7def2df597d59d33495f495892d8264a016e --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/CreateLessonServlet.java (.../CreateLessonServlet.java) (revision d41e1b21d97c67d0e119094a0609078a1e1d0e3c) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/CreateLessonServlet.java (.../CreateLessonServlet.java) (revision 604c7def2df597d59d33495f495892d8264a016e) @@ -32,6 +32,7 @@ import org.lamsfoundation.lams.monitoring.service.IMonitoringService; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.util.wddx.FlashMessage; import org.lamsfoundation.lams.web.servlet.AbstractStoreWDDXPacketServlet; import org.lamsfoundation.lams.web.session.SessionManager; @@ -53,13 +54,10 @@ //--------------------------------------------------------------------- private static Logger log = Logger.getLogger(CreateLessonServlet.class); private static final long serialVersionUID = 6474150792777819606L; + private static IAuditService auditService; - public IMonitoringService getMonitoringService(){ - WebApplicationContext webContext = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()); - return (IMonitoringService) webContext.getBean(MonitoringConstants.MONITORING_SERVICE_BEAN_NAME); - } - protected String process(String lessonPackage, HttpServletRequest request) throws Exception { + auditService = getAuditService(); //get User infomation from shared session. HttpSession ss = SessionManager.getSession(); UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); @@ -78,16 +76,35 @@ try { IMonitoringService monitoringService = getMonitoringService(); - return monitoringService.createLessonClassForLessonWDDX(userID,lessonPackage); + return monitoringService.createLessonClassForLessonWDDX(userID,lessonPackage); } catch ( Exception e ) { log.error("Exception thrown while creating lesson class.",e); FlashMessage flashMessage = FlashMessage.getExceptionOccured("createLesson",e.getMessage()); + auditService.log(CreateLessonServlet.class.getName(), e.getMessage()); return flashMessage.serializeMessage(); } } protected String getMessageKey(String packet, HttpServletRequest request) { return MonitoringConstants.CREATE_LESSON_MESSAGE_KEY; } + + public IMonitoringService getMonitoringService(){ + WebApplicationContext webContext = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()); + return (IMonitoringService) webContext.getBean(MonitoringConstants.MONITORING_SERVICE_BEAN_NAME); + } + + /** + * Get AuditService bean. + * @return + */ + private IAuditService getAuditService(){ + if(auditService==null){ + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext()); + auditService = (IAuditService) ctx.getBean("auditService"); + } + return auditService; + } + } Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== diff -u -rfc7607b6f8f6cffcdf8b8b4d75fea9294380f1c5 -r604c7def2df597d59d33495f495892d8264a016e --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision fc7607b6f8f6cffcdf8b8b4d75fea9294380f1c5) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 604c7def2df597d59d33495f495892d8264a016e) @@ -42,10 +42,14 @@ import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy; import org.lamsfoundation.lams.tool.exception.LamsToolServiceException; import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.util.wddx.FlashMessage; import org.lamsfoundation.lams.web.action.LamsDispatchAction; import org.lamsfoundation.lams.web.util.AttributeNames; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; /** @@ -85,6 +89,9 @@ /** See deleteOldPreviewLessons */ public static final String NUM_DELETED = "numDeleted"; + public static final String MONITORING_MODULE_NAME = "MonitoringAction"; + + private static IAuditService auditService; private Integer getUserId(HttpServletRequest request) { return new Integer(WebUtil.readIntParam(request,"userID")); @@ -96,6 +103,9 @@ private FlashMessage handleException(Exception e, String methodKey, IMonitoringService monitoringService) { log.error("Exception thrown "+methodKey,e); + auditService = getAuditService(); + auditService.log(MONITORING_MODULE_NAME+":"+methodKey, e.toString()); + if ( e instanceof UserAccessDeniedException ) { return new FlashMessage(methodKey, monitoringService.getMessageService().getMessage("error.user.noprivilege"), @@ -112,6 +122,9 @@ private FlashMessage handleCriticalError(String methodKey, String messageKey, IMonitoringService monitoringService) { String message = monitoringService.getMessageService().getMessage(messageKey); log.error("Error occured "+methodKey+" error "); + auditService = getAuditService(); + auditService.log(MONITORING_MODULE_NAME+":"+methodKey, message); + return new FlashMessage(methodKey, message, FlashMessage.CRITICAL_ERROR); @@ -558,9 +571,15 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response)throws IOException{ + + String wddxPacket; IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); - String wddxPacket = monitoringService.getLessonDetails(lessonID); + try{ + Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); + wddxPacket = monitoringService.getLessonDetails(lessonID); + }catch (Exception e) { + wddxPacket = handleException(e, "getLessonDetails", monitoringService).serializeMessage(); + } PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -570,9 +589,14 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response)throws IOException{ + String wddxPacket; IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); - String wddxPacket = monitoringService.getLessonLearners(lessonID); + try{ + Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); + wddxPacket = monitoringService.getLessonLearners(lessonID); + }catch (Exception e) { + wddxPacket = handleException(e, "getLessonLearners", monitoringService).serializeMessage(); + } PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -582,9 +606,14 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response)throws IOException{ + String wddxPacket; IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); - String wddxPacket = monitoringService.getLessonStaff(lessonID); + try{ + Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); + wddxPacket = monitoringService.getLessonStaff(lessonID); + }catch (Exception e) { + wddxPacket = handleException(e, "getLessonStaff", monitoringService).serializeMessage(); + } PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -594,9 +623,14 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response)throws IOException{ + String wddxPacket; IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); - String wddxPacket = monitoringService.getLearningDesignDetails(lessonID); + try{ + Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); + wddxPacket = monitoringService.getLearningDesignDetails(lessonID); + }catch (Exception e) { + wddxPacket = handleException(e, "getLearningDesignDetails", monitoringService).serializeMessage(); + } PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -605,9 +639,15 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response)throws IOException{ + String wddxPacket; IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); - String wddxPacket = monitoringService.getAllLearnersProgress(lessonID); + try{ + Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); + wddxPacket = monitoringService.getAllLearnersProgress(lessonID); + }catch (Exception e) { + wddxPacket = handleException(e, "getAllLearnersProgress", monitoringService).serializeMessage(); + } + PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -674,10 +714,16 @@ HttpServletRequest request, HttpServletResponse response)throws IOException{ IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); - Integer userID = new Integer(WebUtil.readIntParam(request,"userID")); - Integer targetWorkspaceFolderID = new Integer(WebUtil.readIntParam(request,"folderID")); - String wddxPacket = monitoringService.moveLesson(lessonID,targetWorkspaceFolderID,userID); + String wddxPacket = null; + try { + Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); + Integer userID = new Integer(WebUtil.readIntParam(request,"userID")); + Integer targetWorkspaceFolderID = new Integer(WebUtil.readIntParam(request,"folderID")); + wddxPacket = monitoringService.moveLesson(lessonID,targetWorkspaceFolderID,userID); + } catch (Exception e) { + FlashMessage flashMessage = handleException(e, "moveLesson", monitoringService); + wddxPacket = flashMessage.serializeMessage(); + } PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -687,10 +733,16 @@ HttpServletRequest request, HttpServletResponse response)throws IOException{ IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); - Integer userID = new Integer(WebUtil.readIntParam(request,"userID")); - String name = WebUtil.readStrParam(request,"name"); - String wddxPacket = monitoringService.renameLesson(lessonID,name,userID); + String wddxPacket = null; + try { + Long lessonID = new Long(WebUtil.readLongParam(request,"lessonID")); + Integer userID = new Integer(WebUtil.readIntParam(request,"userID")); + String name = WebUtil.readStrParam(request,"name"); + wddxPacket = monitoringService.renameLesson(lessonID,name,userID); + } catch (Exception e) { + FlashMessage flashMessage = handleException(e, "renameLesson", monitoringService); + wddxPacket = flashMessage.serializeMessage(); + } PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -701,10 +753,16 @@ HttpServletRequest request, HttpServletResponse response) throws IOException { - IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long activityID = new Long(WebUtil.readLongParam(request, "activityID")); - Long lessonID = new Long(WebUtil.readLongParam(request, "lessonID")); - String wddxPacket = monitoringService.checkGateStatus(activityID, lessonID); + IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); + String wddxPacket = null; + try { + Long activityID = new Long(WebUtil.readLongParam(request, "activityID")); + Long lessonID = new Long(WebUtil.readLongParam(request, "lessonID")); + wddxPacket = monitoringService.checkGateStatus(activityID, lessonID); + } catch (Exception e) { + FlashMessage flashMessage = handleException(e, "checkGateStatus", monitoringService); + wddxPacket = flashMessage.serializeMessage(); + } PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -715,9 +773,15 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException { - IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); - Long activityID = new Long(WebUtil.readLongParam(request, "activityID")); - String wddxPacket = monitoringService.releaseGate(activityID); + IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext()); + String wddxPacket = null; + try { + Long activityID = new Long(WebUtil.readLongParam(request, "activityID")); + wddxPacket = monitoringService.releaseGate(activityID); + } catch (Exception e) { + FlashMessage flashMessage = handleException(e, "releaseGate", monitoringService); + wddxPacket = flashMessage.serializeMessage(); + } PrintWriter writer = response.getWriter(); writer.println(wddxPacket); return null; @@ -774,6 +838,16 @@ return mapping.findForward(PREVIEW_DELETED_REPORT_SCREEN); } - + /** + * Get AuditService bean. + * @return + */ + private IAuditService getAuditService(){ + if(auditService==null){ + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + auditService = (IAuditService) ctx.getBean("auditService"); + } + return auditService; + } } Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/PerformChosenGroupingServlet.java =================================================================== diff -u -rd9c7ddef141d19423b6ab2914d153c2cb748f187 -r604c7def2df597d59d33495f495892d8264a016e --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/PerformChosenGroupingServlet.java (.../PerformChosenGroupingServlet.java) (revision d9c7ddef141d19423b6ab2914d153c2cb748f187) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/PerformChosenGroupingServlet.java (.../PerformChosenGroupingServlet.java) (revision 604c7def2df597d59d33495f495892d8264a016e) @@ -38,6 +38,7 @@ import org.lamsfoundation.lams.learningdesign.GroupingActivity; import org.lamsfoundation.lams.monitoring.MonitoringConstants; import org.lamsfoundation.lams.monitoring.service.IMonitoringService; +import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.util.wddx.FlashMessage; import org.lamsfoundation.lams.util.wddx.WDDXProcessor; import org.lamsfoundation.lams.web.servlet.AbstractStoreWDDXPacketServlet; @@ -58,6 +59,7 @@ //--------------------------------------------------------------------- private static Logger log = Logger.getLogger(PerformChosenGroupingServlet.class); private static final long serialVersionUID = -3423985351915607659L; + private static IAuditService auditService; public IMonitoringService getMonitoringService(){ WebApplicationContext webContext = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()); @@ -92,6 +94,7 @@ flashMessage = new FlashMessage("performChosenGrouping",map); } catch (Exception e) { log.error(e); + getAuditService().log(PerformChosenGroupingServlet.class.getName(), e.getMessage()); flashMessage = new FlashMessage("performChosenGrouping","Perfrom chosen grouping occurs error:" + e.getMessage(),FlashMessage.ERROR); } @@ -109,5 +112,16 @@ protected String getMessageKey(String packet, HttpServletRequest request) { return MonitoringConstants.PERFORM_CHOSEN_GROUPING_KEY; } - + + /** + * Get AuditService bean. + * @return + */ + private IAuditService getAuditService(){ + if(auditService==null){ + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext()); + auditService = (IAuditService) ctx.getBean("auditService"); + } + return auditService; + } }