Logout.jsp 3.79 KB
<%@ page import="weaver.general.Util"%>
<%@ page import="weaver.hrm.User"%>
<%@ page import="weaver.hrm.HrmUserVarify"%>
<%@ page import="java.util.Map"%>
<%@ page import="weaver.hrm.settings.RemindSettings"%>
<jsp:useBean id="LicenseCheckLogin" class="weaver.login.LicenseCheckLogin" scope="page" />
<%@ page import="weaver.file.Prop"%>
<%@ page import="java.net.URLEncoder"%>
<%@ page import="weaver.interfaces.sso.cas.CasSetting" %>
<%@ page import="weaver.interfaces.sso.cas.CasUtil" %>
<%@ page import="weaver.hrm.settings.ChgPasswdReminder" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>

<%
	User user = HrmUserVarify.getUser(request, response);
    ChgPasswdReminder reminder = new ChgPasswdReminder();
    RemindSettings settings0=reminder.getRemindSettings();
	Map logmessages = (Map) application.getAttribute("logmessages");
	String a_logmessage = "";
	if (logmessages != null)
		a_logmessage = Util.null2String((String)logmessages.get(""+ user.getUID()));
	String s_logmessage = Util.null2String((String)session.getAttribute("logmessage"));
	if (s_logmessage == null)
		s_logmessage = "";
	String relogin0 = Util.null2String(settings0.getRelogin());
	String fromPDA = Util.null2String((String)session.getAttribute("loginPAD"));
	//hubo 清除小窗口登录标识
	if (request.getSession(true).getAttribute("layoutStyle") != null)
		request.getSession(true).setAttribute("layoutStyle", null);
	
	//xiaofeng 有效的登入者在退出时清除登陆标记,踢出的用户直接退出
	if (!relogin0.equals("1") && !s_logmessage.equals(a_logmessage)) {
		if (fromPDA.equals("1")) {
			response.sendRedirect("/login/LoginPDA.jsp");
		} else {
			response.sendRedirect("/login/Login.jsp");
		}
		return;
	} else {
		logmessages = (Map) application.getAttribute("logmessages");
		if (logmessages != null)
			logmessages.remove("" + user.getUID());
	}
    
	String loginfile = Util.getCookie(request, "loginfileweaver");
	String logintype = Util.null2String(user.getLogintype());
	LicenseCheckLogin.updateOnlinFlag(""+ user.getUID());
	
	String weaver_login_type = Util.null2String((String)request.getSession(true).getAttribute("weaver_login_type"));
	request.getSession(true).removeValue("moniter");
	request.getSession(true).removeValue("WeaverMailSet");
	request.getSession(true).invalidate();
	response.addHeader("Set-Cookie","__clusterSessionIDCookieName="+Util.getCookie(request,"__clusterSessionIDCookieName")+";expires=Thu, 01-Dec-1994 16:00:00 GMT;Path=/;HttpOnly");
	if (fromPDA.equals("1"))
		loginfile = "/login/LoginPDA.jsp";

	//考虑这种情况:Cookies 被清空  loginfile为空  此时得指定一个值
	if (loginfile == null || loginfile.trim().equals("")) {
		loginfile = "/login/Login.jsp?logintype=1";
	}

	//response.sendRedirect("/Refresh.jsp?loginfile=" + loginfile);
	
	request.getSession(true).setAttribute("weaver_user@bean",null);
	CasSetting cs = new CasSetting();
//	CasUtil cu = new CasUtil(); //qc414384 [80][90][客户]CAS集成-解决点击退出按钮系统卡顿问题
	
	String caslogin = cs.getIsuse();
//	String isFilterExist = cu.isFilterExist();
	
	if(weaver_login_type.equals("OALogin")){
		if(!caslogin.equals("1")){
			response.sendRedirect("/Refresh.jsp?loginfile=" + loginfile);
		}else{
			response.sendRedirect("/login/OALogin.jsp?loginfile=" + loginfile);
		}
	}else{
		if(!caslogin.equals("1")){
			response.sendRedirect("/Refresh.jsp?loginfile=" + loginfile);
		}else{
			String logoutUrl = cs.getCasserverurl()+cs.getCasserverlogoutpage();
			String service = cs.getEcologyurl();
			service = URLEncoder.encode(service, "UTF-8");
				
			String loginUrl = cs.getCasserverurl()+cs.getCasserverloginpage();
			loginUrl = loginUrl+"?service="+service;
		
%>
<script language="javascript">
	top.window.location.href="<%=logoutUrl%>?service=<%=service%>?logintype=<%=logintype%>";
</script>
<%
		}

	}
%>