Package com.iisigroup.cap.base.handler

Source Code of com.iisigroup.cap.base.handler.CheckTimeoutHandler

/*
* CCCheckRouteHandler.java
*
* Copyright (c) 2009-2013 International Integrated System, Inc.
* All Rights Reserved.
*
* Licensed Materials - Property of International Integrated System, Inc.
*
* This software is confidential and proprietary information of
* International Integrated System, Inc. ("Confidential Information").
*/
package com.iisigroup.cap.base.handler;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.stereotype.Controller;

import com.iisigroup.cap.base.CapSystemProperties;
import com.iisigroup.cap.component.IRequest;
import com.iisigroup.cap.exception.CapException;
import com.iisigroup.cap.handler.MFormHandler;
import com.iisigroup.cap.response.AjaxFormResult;
import com.iisigroup.cap.response.IResult;
import com.iisigroup.cap.utils.CapDate;
import com.iisigroup.cap.utils.CapString;

/**
* <pre>
* Check timeout handler
* </pre>
*
* @since 2014/4/2
* @author TimChiang
* @version <ul>
*          <li>2014/4/2,new
*          <li>2014/4/18,Sunkist Wang,update get sysProp
*          </ul>
*/
@Controller("checktimeouthandler")
public class CheckTimeoutHandler extends MFormHandler {

  @Resource
  private CapSystemProperties sysProp;
 
  private static final String TIME_OUT = "TIME_OUT";


  public IResult check(IRequest request) throws CapException {
    AjaxFormResult result = new AjaxFormResult();
    HttpServletRequest sreq = (HttpServletRequest)request.getServletRequest();
//    String path = sreq.getPathInfo();
//    boolean isNewSes = sreq.getSession(false).isNew();
    long time1 = sreq.getSession(false).getLastAccessedTime();
    long time2 = CapDate.getCurrentTimestamp().getTime();
    //session設定時間
        long time3 = sreq.getSession(false).getMaxInactiveInterval();
        //讀取後台db設定(單位為分鐘)
        sysProp.remove(TIME_OUT);
        String stout = sysProp.get(TIME_OUT);
        if(!CapString.isEmpty(stout)){
          time3 = Long.parseLong(stout);
          time3 = time3*60;
        }
        String isContinues = request.get("isContinues");
        // Calculate difference in milliseconds
        long diff = time2 - time1;
        // Difference in seconds
        long diffSec = diff / 1000;
        //session timeout 導向 error page
        String refPath = sreq.getHeader("referer");
        refPath = StringEscapeUtils.unescapeHtml(refPath);
        if((diffSec>time3 && refPath.lastIndexOf("error")<0 && refPath.lastIndexOf("timeout")<0) || "false".equals(isContinues)){
//          if(!isNewSes){
            result.set("errorPage", "/cap-web/page/timeout");
            sreq.getSession(false).invalidate();
//          }
        }
        result.set("msg", "cccheked");
    return result;
  }
}
TOP

Related Classes of com.iisigroup.cap.base.handler.CheckTimeoutHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.