VerifySSoLogin.jsp 6.68 KB
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.AES" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.hrm.OnLineMonitor"%>
<%@page import="weaver.hrm.User"%>
<%@page import="java.util.Calendar"%>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<%!
private String getLogMessage(String uid){
	String message = "";
	RecordSet rs = new RecordSet();
	String sqltmp = "";
    if (rs.getDBType().equals("oracle")) {
        sqltmp = "select * from (select * from SysMaintenanceLog where relatedid = ? and operatetype='6' and operateitem='60' order by id desc ) where rownum=1 ";
    }else if(rs.getDBType().equals("db2")){
        sqltmp = "select * from SysMaintenanceLog where relatedid = ? and operatetype='6' and operateitem='60' order by id desc fetch first 1 rows only ";
    } else {
        sqltmp = "select top 1 * from SysMaintenanceLog where relatedid = ? and operatetype='6' and operateitem='60' order by id desc";
    }
    rs.executeQuery(sqltmp,uid);
    if (rs.next()){
        message = rs.getString("clientaddress") + " " + rs.getString("operatedate") + " " + rs.getString("operatetime");
    }
    return message;
}
%>
<%
String para = Util.null2String(request.getParameter("para"));

String loginid = "";
String gopage = "";
try{
	String password=new BaseBean().getPropValue("AESpassword", "pwd");
	if(password.equals("")){
		password="1";
	}
	String para2 = AES.decrypt(para,password);
	String str[] = Util.TokenizerString2(para2,"#");
	gopage=str[0];
	loginid = str[1];
}catch (Exception e){
	new BaseBean().writeLog(e);
	response.sendRedirect("/login/Login.jsp");
	return;
}

User user_new = null;
//成功
	rs.executeQuery("select * from HrmResource where loginid=? and status<4",loginid);
	if(rs.next()){
		user_new = new User();
		user_new.setUid(rs.getInt("id"));
		user_new.setLoginid(rs.getString("loginid"));
		user_new.setFirstname(rs.getString("firstname"));
		user_new.setLastname(rs.getString("lastname"));
		user_new.setAliasname(rs.getString("aliasname"));
		user_new.setTitle(rs.getString("title"));
		user_new.setTitlelocation(rs.getString("titlelocation"));
		user_new.setSex(rs.getString("sex"));
		user_new.setPwd(rs.getString("password"));
		String languageidweaver = rs.getString("systemlanguage");
		user_new.setLanguage(Util.getIntValue(languageidweaver, 0));
		user_new.setTelephone(rs.getString("telephone"));
		user_new.setMobile(rs.getString("mobile"));
		user_new.setMobilecall(rs.getString("mobilecall"));
		user_new.setEmail(rs.getString("email"));
		user_new.setCountryid(rs.getString("countryid"));
		user_new.setLocationid(rs.getString("locationid"));
		user_new.setResourcetype(rs.getString("resourcetype"));
		user_new.setStartdate(rs.getString("startdate"));
		user_new.setEnddate(rs.getString("enddate"));
		user_new.setContractdate(rs.getString("contractdate"));
		user_new.setJobtitle(rs.getString("jobtitle"));
		user_new.setJobgroup(rs.getString("jobgroup"));
		user_new.setJobactivity(rs.getString("jobactivity"));
		user_new.setJoblevel(rs.getString("joblevel"));
		user_new.setSeclevel(rs.getString("seclevel"));
		user_new.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
		user_new.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
		user_new.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
		user_new.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
		user_new.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
		user_new.setManagerid(rs.getString("managerid"));
		user_new.setAssistantid(rs.getString("assistantid"));
		user_new.setPurchaselimit(rs.getString("purchaselimit"));
		user_new.setCurrencyid(rs.getString("currencyid"));
		user_new.setLastlogindate(rs.getString("currentdate"));
		user_new.setLogintype("1");
		user_new.setAccount(rs.getString("account"));
		user_new.setLoginip(request.getRemoteAddr());
		request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
		request.getSession(true).setAttribute("weaver_user@bean", user_new);
		//多帐号登陆
		if (user_new.getUID() != 1) {  //is not sysadmin
			weaver.login.VerifyLogin VerifyLogin = new weaver.login.VerifyLogin();
			java.util.List accounts = VerifyLogin.getAccountsById(user_new.getUID());
			request.getSession(true).setAttribute("accounts", accounts);
		}
		request.getSession(true).setAttribute("moniter", new OnLineMonitor("" + user_new.getUID(),user_new.getLoginip()));
		Util.setCookie(response, "loginfileweaver", "/login/Login.jsp", 172800);
		Util.setCookie(response, "loginidweaver", ""+user_new.getUID(), 172800);
		Util.setCookie(response, "languageidweaver", languageidweaver, 172800);
		
		Map logmessages=(Map)application.getAttribute("logmessages");
        if(logmessages==null){
            logmessages=new HashMap();
            logmessages.put(""+user_new.getUID(),"");
            application.setAttribute("logmessages",logmessages);
        }
        request.getSession(true).setAttribute("logmessage",getLogMessage(user_new.getUID()+""));
        
        //处理浏览器是否为IE start
        String isIE = Util.null2String(request.getParameter("isie"));
		String agent = request.getHeader("user-agent");
		if(agent.indexOf("rv:11") == -1 && agent.indexOf("MSIE") == -1){
			isIE = "false";
		}
		if(agent.indexOf("rv:11") > -1 && agent.indexOf("Mozilla") > -1){
			isIE = "true";
		}
		if(!isIE.equals("false")){
			isIE = "true";
		}
		request.getSession(true).setAttribute("browser_isie",isIE);
		//处理浏览器是否为IE end

		char separater = Util.getSeparator();
		Calendar today = Calendar.getInstance();
		String LoginDate = Util.add0(today.get(Calendar.YEAR), 4) + "-" + Util.add0(today.get(Calendar.MONTH) + 1, 2) + "-" + Util.add0(today.get(Calendar.DAY_OF_MONTH), 2);
		rs.execute("HrmResource_UpdateLoginDate", rs.getString("id") + separater + LoginDate);

        //登录日志
        weaver.systeminfo.SysMaintenanceLog log1 = new  weaver.systeminfo.SysMaintenanceLog();
        log1.resetParameter();
        log1.setRelatedId(rs.getInt("id"));
        log1.setRelatedName((rs.getString("firstname") + " " + rs.getString("lastname")).trim());
        log1.setOperateType("6");
        log1.setOperateDesc("");
        log1.setOperateItem("60");
        log1.setOperateUserid(rs.getInt("id"));
        log1.setClientAddress(request.getRemoteAddr());
        try {
			log1.setSysLogInfo();
		} catch (Exception e) {
			e.printStackTrace();
		}
		response.sendRedirect(gopage);
		return;
	}else{
		//跳转到错误页面
		response.sendRedirect("/login/Login.jsp");
		return;
	}
%>