UpgradeAdminLoginOperation.jsp 5.04 KB
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<%@ page import="java.io.*" %><%@ page import="java.util.*" %>
<%@ page import="org.json.JSONObject" %>
<%@ page import="weaver.system.UpgradeLoginControl" %>
<%@ page import="weaver.rsa.security.RSA" %>
<%@ page import="weaver.general.*" %>
<%
response.setHeader("cache-control", "no-cache");
response.setHeader("pragma", "no-cache");
response.setHeader("expires", "Mon 1 Jan 1990 00:00:00 GMT");
%><%
String flag = "0";
String requesttype = request.getParameter("requesttype");
if("1".equals(requesttype)) {
	try{
	    BaseBean bean =new BaseBean();
		String checkadmin =Util.null2String(bean.getPropValue("upgradesetting","checkadmin"));
		
		if("1".equals(checkadmin)) {
			String adminlogin = (String)request.getSession(true).getAttribute("weaver_uadminLogin") ;
			if(adminlogin == null || !"1".equals(adminlogin)) {
				flag = "1";
			}
		}

	}catch(Exception e){}
	out.print(flag);
} else {
	JSONObject json = new JSONObject();
	OrderProperties prop=new OrderProperties();
	String filepath1=GCONST.getRootPath() +"WEB-INF"+ File.separatorChar+ "prop" + File.separatorChar+"upgradeloginsetting.properties";
	prop.load(filepath1);
	String loginstatus = Util.null2String(prop.getProperty("loginstatus")).trim();
	int canloginchoice=Util.getIntValue(Util.null2String(prop.getProperty("canloginchoice").trim()));
	if(canloginchoice<=0){
		canloginchoice=10;
	}
	if ("".equals(loginstatus) || "0".equals(loginstatus)) {

	}
	if ("1".equals(loginstatus)) {
		json.put("flag", 4);
	} else {
		String username = request.getParameter("username");
		String user_password = request.getParameter("password");

		BaseBean bean=new BaseBean();
		String isrsaopen = Util.null2String(bean.getPropValue("openRSA","isrsaopen"));
		if("1".equals(isrsaopen)){
			RSA rsa = new RSA();
			try{
				user_password = rsa.decrypt(request,user_password);
			}catch(Exception e){
				new BaseBean().writeLog(e.toString());
				e.printStackTrace();
			}
		}

		//new BaseBean().writeLog("password:"+user_password);
		boolean saltExists = false;
		String sql = "";
		if((rs.getDBType()).equalsIgnoreCase("oracle")) {
			sql = "select 1 from  USER_TAB_COLUMNS WHERE TABLE_NAME = UPPER('HrmResourceManager') AND COLUMN_NAME = 'SALT'";
		} else if((rs.getDBType()).equalsIgnoreCase("sqlserver")) {
			sql = "select 1 from syscolumns  where id=object_id('HrmResourceManager') and name='salt'";
		}
		if(!sql.equals("")) {
			rs.executeSql(sql);
			if(rs.next()) {
				saltExists = true;
			}
		} else {
			saltExists = true;
		}

		if(saltExists) {
			rs.executeSql("select password,salt from HrmResourceManager where loginid='" + username +"'");
			String pswd = "";
			if(rs.next()){
				pswd = rs.getString(1);
				if(pswd.length() != 0){
					String salt = rs.getString("salt");
					if (PasswordUtil.check(user_password, pswd, salt)) {
						flag = "0";//正确
						request.getSession(true).setAttribute("weaver_uadminLogin","1") ;
					} else {
						flag = "1";//用户名或密码错误
						request.getSession(true).removeAttribute("weaver_uadminLogin");
					}
				} else 	{
					flag = "1";//用户名或密码错误
					request.getSession(true).removeAttribute("weaver_uadminLogin");
				}
			} else {
				flag = "2";//用户名或密码错误
				request.getSession(true).removeAttribute("weaver_uadminLogin");
			}
		}  else {
			rs.executeSql("select password from HrmResourceManager where loginid='" + username +"'");
			String pswd = "";
			if(rs.next()){
				pswd = rs.getString(1);
				if(pswd.length() != 0){
					if (rs.getString("password").equals(Util.getEncrypt(user_password))) {
						flag = "0";//正确
						request.getSession(true).setAttribute("weaver_uadminLogin","1") ;
					} else {
						flag = "1";//用户名或密码错误
						request.getSession(true).removeAttribute("weaver_uadminLogin");
					}
				} else 	{
					flag = "1";//用户名或密码错误
					request.getSession(true).removeAttribute("weaver_uadminLogin");
				}
			} else {
				flag = "2";//用户名或密码错误
				request.getSession(true).removeAttribute("weaver_uadminLogin");
			}
		}
			if(!"2".equals(loginstatus)){
				if ("0".equals(flag)) {//校验通过的
					UpgradeLoginControl.logincount = 0;
					//prop.put("loginstatus", "0");
					json.put("count","0");
					json.put("loginstatus",0);
				}else if("2".equals(flag)){//账号错误不处理
					new BaseBean().writeLog("账号错误");
					json.put("loginstatus", 0);
					json.put("count", UpgradeLoginControl.logincount);
				} else {//校验失败处理
					new BaseBean().writeLog("密码错误");
					UpgradeLoginControl.logincount = UpgradeLoginControl.logincount + 1;
					if (UpgradeLoginControl.logincount >canloginchoice-1) {
						prop.put("loginstatus", "1");
						flag = "4";
						UpgradeLoginControl.logincount = 0;
						prop.store(prop,filepath1);
					}
					json.put("loginstatus",1);
					json.put("count",UpgradeLoginControl.logincount);
				}
			}else{
				json.put("loginstatus",2);
			}

	}
	json.put("canloginchoice", canloginchoice);
	json.put("flag", flag);
	response.getWriter().print(json.toString());
}
%>