verifyLogin.jsp 2.13 KB
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.weaver.formmodel.mobile.security.encrypt.EncryptSHA1"%>
<%@ page import="weaver.hrm.User"%>
<%@ page import="weaver.mobile.plugin.ecology.service.HrmResourceService"%>
<%@ page import="com.weaver.formmodel.mobile.MobileModeConfig"%>
<%@ page import="weaver.general.Util"%>
<%
String loginid = Util.null2String(request.getParameter("loginid"));
String stamp = Util.null2String(request.getParameter("stamp"));
String token = Util.null2String(request.getParameter("token"));
if(loginid.equals("") || stamp.equals("") || token.equals("")){
	out.println("验证登录时必要信息不完整");
	return;
}

String url = Util.null2String(request.getParameter("url"));
if("".equals(url)){
	out.println("跳转链接地址url信息为空");
	return;
}

long millisec = (long)Util.getDoubleValue(stamp, -1);
long timeout = 1000 * 60 * 5;//前后五分钟
if((millisec + timeout) < System.currentTimeMillis() || (millisec - timeout) > System.currentTimeMillis()){
	out.println("登录信息已超时");
	return;
}

//String key = "plNB30";	//密钥(Emobile或其他app中协商配置)
String key = MobileModeConfig.getInstance().getSSoKey();
if("".equals(key)){
	out.println("密钥为空,请在移动建模后台设置中添加单点登录密钥信息");
	return;
}

String verifyStr = key + loginid + stamp;
verifyStr = EncryptSHA1.encode(verifyStr);
if(!verifyStr.equals(token)){
	out.println("token验证未成功");
	return;
}
HrmResourceService hrs = new HrmResourceService();
int userid = hrs.getUserId(loginid);
if(userid <= 0){
	out.println("未找到指定账号的用户: " + loginid);
	return;
}
//验证成功
User user = hrs.getUserById(userid);
request.getSession(true).setAttribute("weaver_user@bean", user);
/*
String ip = request.getRemoteAddr();
AuthService authService = new AuthService();
Map result = authService.login(String.valueOf(userid), "7", ip);
String message = Util.null2String(result.get("message"));
if(!message.equals("1")){
	out.println("登录失败");
	return;
}
String sessionkey = Util.null2String(result.get("sessionkey"));
*/

response.sendRedirect(url);
%>