public.jsp 2.43 KB
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.general.Util"%>
<%@ page import="java.util.Map"%>
<%@ page import="com.weaver.formmodel.mobile.utils.MobileCommonUtil"%>
<%@ page import="weaver.mobile.plugin.ecology.service.AuthService"%>
<%@ page import="com.weaver.formmodel.mobile.security.SecurityUtil"%>
<%@ page import="com.weaver.formmodel.mobile.MobileModeConfig"%>
<%
String userid;
String url;
String from = Util.null2String(request.getParameter("from"));
if(from.equals("anonymous")){
	MobileModeConfig mConfig = MobileModeConfig.getInstance();
	if(!mConfig.isAnonymousAccessEnabled()){
		out.println("anonymous access is not enabled");
		return;
	}
	userid = mConfig.getAnonymousMappingUser();
	if("".equals(userid)){
		out.println("mapping user is empty");
		return;
	}
	url = Util.null2String(request.getParameter("url"));//"/mobilemode/mobile/view.jsp?appid=23";
	if("".equals(url)){
		out.println("url is empty");
		return;
	}
	url = SecurityUtil.decrypt(url);
	if(url.equals("") || !url.startsWith("/mobilemode/")){
		out.println("illegal url:" + url);
		return;
	}
}else if(from.equals("QRCode")){
	url = Util.null2String(request.getParameter("url"));//"/mobilemode/mobile/view.jsp?appid=23";
	if("".equals(url)){
		out.println("url is empty");
		return;
	}
	url = SecurityUtil.decrypt(url);
	String[] arr = url.split(";");
	if(arr.length != 3){
		out.println("illegal url:" + url);
		return;
	}
	int a1 = Util.getIntValue(arr[0], -1);
	int a2 = Util.getIntValue(arr[1], -1);
	long a3 = (long)Util.getDoubleValue(arr[2], -1);
	if(a1 == -1 || a2 == -1 || a3 == -1){
		out.println("illegal url:" + url);
		return;
	}
	userid = String.valueOf(a1);
	url = "/mobilemode/mobile/view.jsp?appHomepageId=" + a2;
	long timeout = 1000 * 60 * 10;
	if((a3 + timeout) < System.currentTimeMillis()){
		out.println("二维码已过期");
		return;
	}
}else{
	out.println("from is empty or unrecognized");
	return;
}
String ip = MobileCommonUtil.getClientIp(request);
AuthService as = new AuthService();
Map result = as.login(userid, "", ip);
String message = (String)result.get("message");
if(!"1".equals(message)){
	out.println("mapping user login failed");
	return;
}

String sessionkey = (String)result.get("sessionkey");
%>
<jsp:include page="<%=url %>" flush="true">
	<jsp:param name="sessionkey" value="<%=sessionkey %>" />
</jsp:include>
<script type="text/javascript">
	if(__meta__){__meta__.sessionKey = "<%=sessionkey %>";}
</script>