package edu.sjtu.infosec.ismp.manager.SYSM.config.web.actions.lm.dLog;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import edu.sjtu.infosec.ismp.manager.LM.pfLog.service.SystemLogService;
import edu.sjtu.infosec.ismp.manager.LM.util.modle.PageBean;
import edu.sjtu.infosec.ismp.manager.SYSM.config.model.lm.dLog.Sensor;
import edu.sjtu.infosec.ismp.manager.SYSM.config.service.lm.dLog.PcSourceService;
import edu.sjtu.infosec.ismp.manager.SYSM.config.web.form.lm.dLog.PcSourceFrom;
import edu.sjtu.infosec.ismp.manager.SYSM.user.self.comm.SecurityUserHolder;
import edu.sjtu.infosec.ismp.security.Domain;
import edu.sjtu.infosec.ismp.security.OperatorDetails;
/**
* 处理Pc日志的查询、新增
* @author 林超
*
*/
public class PcConfigAction extends DispatchAction {
private PcSourceService pcSourceSer;
private SystemLogService logService;
private java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* Pc日志的 查询
* @param mapping
* @param from
* @param request
* @param response
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public ActionForward getPcSource(ActionMapping mapping, ActionForm from, HttpServletRequest request,
HttpServletResponse response) throws Exception {
OperatorDetails user = SecurityUserHolder.getCurrentUser();
Sensor sensor = new Sensor();
PcSourceFrom pcFrom = (PcSourceFrom)from;
List<Domain> domain = new ArrayList<Domain>();
PageBean pageBean = new PageBean();
if(request.getParameter("type")==null || !request.getParameter("type").equals("page")){
if(pcFrom.getDomain()==null || pcFrom.getDomain()=="" || pcFrom.getDomain().equals("all")){
domain = user.getDomainList();
}else{
for(Domain dom:user.getDomainList()){
if(dom.getId().equals(Integer.valueOf(pcFrom.getDomain()))){
domain.add(dom);
break;
}
}
}
if(pcFrom.getSensorIp()!=null && pcFrom.getSensorIp()!="")
sensor.setSensorIp(pcFrom.getSensorIp());
if(pcFrom.getStartCollectSwitch()!=null)
sensor.setStartCollectSwitch(pcFrom.getStartCollectSwitch());
sensor.setSensorIsExist(true);
if(request.getParameter("type")!=null && request.getParameter("type").equals("sel"))
{
sensor.setStartMonitorSwitch(true);
}
request.getSession().setAttribute("pcConfigSourceListQuery_domain", domain);
request.getSession().setAttribute("pcConfigSourceListQuery_sensor", sensor);
}
int pageNo = 1;
if(request.getParameter("pageNo")!=null && request.getParameter("pageNo")!="")
pageNo = Integer.valueOf(request.getParameter("pageNo"));
pageBean.setPageRowNum(12);
pageBean.setPageNo(pageNo);
List<Sensor> pcSourceList = pcSourceSer.getAllPcSource((Sensor)request.getSession().getAttribute("pcConfigSourceListQuery_sensor"), (List<Domain>) request.getSession().getAttribute("pcConfigSourceListQuery_domain"), (pageBean.getPageNo()-1)*pageBean.getPageRowNum(), pageBean.getPageRowNum());
pageBean.setResultRowSum(pcSourceSer.getAllPcSourceCount((Sensor)request.getSession().getAttribute("pcConfigSourceListQuery_sensor"), (List<Domain>) request.getSession().getAttribute("pcConfigSourceListQuery_domain")));
pageBean.setPageMaxSum((pageBean.getResultRowSum()+(pageBean.getPageRowNum()-1))/pageBean.getPageRowNum());
pageBean.setPageResult(pcSourceList);
request.setAttribute("domainList", user.getDomainList());
request.setAttribute("pageResult", pageBean);
// System.out.println("----------PageBean--source-------");
// System.out.println("当前页:" + pageBean.getPageNo());
// System.out.println("一共多少页:" + pageBean.getPageMaxSum());
// System.out.println("每页多少行:" + pageBean.getPageRowNum());
// System.out.println("一共多少行:" + pageBean.getResultRowSum());
// System.out.println("符合查询数:" + pageBean.getPageResult().size());
// System.out.println("----------PageBean--source-------");
return mapping.findForward("pcSourceDisplay");
}
/**
* 修改
* @param mapping
* @param from
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward updatePcSource(ActionMapping mapping, ActionForm from, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String sourceId = request.getParameter("id");
String startCollectSwitch = request.getParameter("startCollect");
String intervalCollectTime = request.getParameter("intervalCollectTime");
List<String> sourceIdList = new ArrayList<String>();
if(sourceId != null && sourceId.contains(",")){
String[] id = sourceId.split(",");
for(String obj:id){
sourceIdList.add(obj);
}
}else{
sourceIdList.add(sourceId);
}
OperatorDetails eventLogClass = SecurityUserHolder.getCurrentUser();
logService.saveSystemLog(eventLogClass.getUsername(),
eventLogClass.getRoleList().get(0).getName(), "日志模块",
"修改 Sensor 日志源", Timestamp.valueOf(sdf.format(new Date())), "成功");
pcSourceSer.updatePcSource(sourceIdList, startCollectSwitch, intervalCollectTime);
return mapping.findForward("getSource");
}
/**
* 修改 轮循采集时间
* @param mapping
* @param from
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward updatePcSourceintervalCollectTime(ActionMapping mapping, ActionForm from, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String sourceId = request.getParameter("id");
Sensor sensor = pcSourceSer.loadObject(sourceId);
request.setAttribute("sensorObject", sensor);
return mapping.findForward("pcSensorDisplay");
}
/**
* SysLog日志的 新增
* @param mapping
* @param from
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward addSysLogSource(ActionMapping mapping, ActionForm from, HttpServletRequest request,
HttpServletResponse response) throws Exception {
// SysLogSourceFrom sourceFrom = (SysLogSourceFrom) from;
// SysLogSource source = new SysLogSource();
// OperatorDetails user = SecurityUserHolder.getCurrentUser();
//
// List<Domain> domainList = user.getDomainList();
// for(Domain domain : domainList){
// if(domain.getId().equals(Integer.valueOf(sourceFrom.getDomain()))){
// source.setDomain(domain);
// break;
// }
// }
//
// List<SysLogSourceType> sourceTypeList = sysLogSourceSer.getAllSysLogSourceType();
// for(SysLogSourceType sourceType : sourceTypeList){
// if(sourceType.getId().equals(Integer.valueOf(sourceFrom.getSourceType()))){
// source.setSourceType(sourceType);
// break;
// }
// }
//
// source.setSourceName(sourceFrom.getSourceName());
// source.setStartCollectSwitch(sourceFrom.getStartCollectSwitch());
// source.setLogSourceseQuence(UUID.randomUUID().toString());
// source.setCreateTime(new Timestamp(new Date().getTime()));
// source.setDeviceIP(sourceFrom.getDeviceIP());
//
// sysLogSourceSer.addSysLogSource(source);
//
//// 清空ActionForm的缓存,清掉上次页面的自动填写。
//// if(mapping.getAttribute()!=null){
//// if("request".equals(mapping.getScope())){
//// request.removeAttribute(mapping.getAttribute());
//// }else{
//// request.getSession().removeAttribute(mapping.getAttribute());
//// }
//// }
//
// //设置防止重复提交的令牌
//// saveToken(request);
//
// from.reset(mapping, request);
//
// return this.getSysLogSource(mapping, from, request, response);
return null;
}
public PcSourceService getPcSourceSer() {
return pcSourceSer;
}
public void setPcSourceSer(PcSourceService pcSourceSer) {
this.pcSourceSer = pcSourceSer;
}
public SystemLogService getLogService() {
return logService;
}
public void setLogService(SystemLogService logService) {
this.logService = logService;
}
}