package com.sp2p.system.interceptor; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; import com.renren.api.client.utils.Md5Utils; import com.shove.security.Encrypt; import com.shove.security.License; import com.shove.web.util.JSONUtils; public class AppInterceptor implements Interceptor { private final static String APP_KEY = "wDwdKd27d0Qj1w%$Ea536yiuPE96O!3L"; public void destroy() { } public void init() { } public String intercept(ActionInvocation invocation) throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); String auth = (String) request.getParameter("auth"); System.out.println("auth===========>" + auth); String info = (String)request.getParameter("info"); System.out.println("info===========>" + info); Map<String, String> jsonMap = new HashMap<String, String>(); if (StringUtils.isBlank(auth)) { jsonMap.put("error", "-2"); jsonMap.put("msg", "验证签名不正确"); JSONUtils.printObject(jsonMap); return null; } Map<String, String> map = (Map<String, String>) JSONObject.toBean( JSONObject.fromObject(auth), HashMap.class); String crc = map.get("crc"); System.out.println("crc==>"+crc); if (StringUtils.isBlank(crc)) { jsonMap.put("error", "-2"); jsonMap.put("msg", "验证签名不正确"); JSONUtils.printObject(jsonMap); return null; } if(StringUtils.isBlank(map.get("time_stamp"))){ jsonMap.put("error", "-2"); jsonMap.put("msg", "时间戳不能为空"); JSONUtils.printObject(jsonMap); return null; } SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); long curTime = new Date().getTime(); long client = sDateFormat.parse(map.get("time_stamp")).getTime(); if (curTime - client >= 1 * 60 * 1000) { jsonMap.put("error", "-2"); jsonMap.put("msg", "请求超时"); JSONUtils.printObject(jsonMap); return null; } if(StringUtils.isBlank(map.get("imei"))){ jsonMap.put("error", "-2"); jsonMap.put("msg", "imei不能为空"); JSONUtils.printObject(jsonMap); return null; } if(StringUtils.isBlank(map.get("uid"))){ jsonMap.put("error", "-2"); jsonMap.put("msg", "uid不能为空"); JSONUtils.printObject(jsonMap); return null; } if(StringUtils.isBlank(map.get("uid"))){ jsonMap.put("error", "-2"); jsonMap.put("msg", "uid不能为空"); JSONUtils.printObject(jsonMap); return null; } StringBuilder keys = new StringBuilder(); keys.append(map.get("time_stamp")); keys.append(map.get("imei")); keys.append(map.get("uid")); keys.append(Encrypt.MD5(map.get("uid")+"").substring(9, 20)); keys.append(info); keys.append(APP_KEY); System.out.println("keys==>"+keys.toString()); String md5Crc = Md5Utils.md5(keys.toString()); System.out.println("MD5CRC==>"+md5Crc); if(!crc.equals(md5Crc)){ jsonMap.put("error", "-2"); jsonMap.put("msg", "验证签名不正确"); JSONUtils.printObject(jsonMap); return null; } //// License.update(request, IConstants.LICENSE); // if (!License.getAndoridAllow(request)&&!License.getiOSAllow(request)) { // jsonMap.put("error", "1"); // jsonMap.put("msg", ""); // JSONUtils.printObject(jsonMap); // return null; // } return invocation.invoke(); } }