websealsettingOperation.jsp 5.4 KB
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.general.*" %>
<%@ page import="weaver.hrm.*" %>
<%@ page import="weaver.conn.*" %>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="WebSealUtil" class="weaver.interfaces.sso.webseal.WebSealUtil" scope="page" />

<%
User user = HrmUserVarify.getUser(request, response);
if(user == null) return;
if(!HrmUserVarify.checkUserRight("WebSEAL:ALL", user)) {
	response.sendRedirect("/notice/noright.jsp") ;
	return;
}

String method = Util.null2String(request.getParameter("method"));
String saveType = Util.null2String(request.getParameter("saveType"));

if("save".equals(method)) {// 保存
	String isUseWebSeal = Util.null2String(request.getParameter("isUseWebSeal"));
	isUseWebSeal = isUseWebSeal.equals("") ? "0" : "1";
	String paramMethod = Util.null2String(request.getParameter("paramMethod"));
	String paramName = Util.null2String(request.getParameter("paramName"));
	String loginPage = Util.null2String(request.getParameter("loginPage"));
	String logoutPage = Util.null2String(request.getParameter("logoutPage"));
	String accountType = Util.null2String(request.getParameter("accountType"));
	String customSqlStr = Util.null2String(request.getParameter("customSqlStr"));
	
	String urls[] = request.getParameterValues("url");
	String descriptions[] = request.getParameterValues("description");
	
	String rules[] = request.getParameterValues("rule");
	String ruleDescs[] = request.getParameterValues("ruleDesc");
    ConnStatement connStatement = null;
    try {
        connStatement = new ConnStatement();
        String SQL = "";
        if("1".equals(saveType)) {
            // 启用
            rs.executeSql("delete from int_webseal_setting");
            SQL = "insert into int_webseal_setting(isuse, websealparammethod, websealparamname, ecologyloginpage, ecologylogoutpage, accounttype, customsql) "
                    + "values(?, ?, ?, ?, ?, ?, ?)";

            connStatement.setStatementSql(SQL);
            connStatement.setString(1, isUseWebSeal);
            connStatement.setString(2, paramMethod);
            connStatement.setString(3, paramName);
            connStatement.setString(4, loginPage);
            connStatement.setString(5, logoutPage);
            connStatement.setString(6, accountType);
            if("customsql".equals(accountType)) {
                connStatement.setString(7, customSqlStr);
            } else {
                connStatement.setString(7, "");
            }
            new BaseBean().writeLog(connStatement.toString());
            connStatement.executeUpdate();

            // 更新自定义排除地址
            rs.executeSql("delete from int_webseal_exclueurl where iscustom = 1");
            if(urls != null) {
                for(int i = 0; i < urls.length; i++) {
                    String url = urls[i].trim();
                    String description = descriptions[i];

                    if(!url.equals("")) {
                        SQL = "insert into int_webseal_exclueurl(excludeurl,excludedescription,iscustom)  values(?, ?, ?)";
                        connStatement.setStatementSql(SQL);
                        connStatement.setString(1, url);
                        connStatement.setString(2, description);
                        connStatement.setString(3, "1");
                        connStatement.executeUpdate();
                    }
                }
            }

            // 更新过滤地址
            rs.executeSql("delete from int_webseal_securityrules");
            if(rules != null) {
                for(int j = 0; j < rules.length; j++) {
                    String rule = rules[j].trim();
                    String ruleDesc = ruleDescs[j];

                    if(!rule.equals("")) {
                        SQL = "insert into int_webseal_securityrules(securityrule,ruledescription) values(?, ?)";
                        connStatement.setStatementSql(SQL);
                        connStatement.setString(1, rule);
                        connStatement.setString(2, ruleDesc);
                        connStatement.executeUpdate();
                    }
                }
            }

        } else if("2".equals(saveType)) {// 非首次关闭
            SQL = "update int_webseal_setting set isuse = '0'";
            rs.executeSql(SQL);

        }


    } catch (Exception e) {

    }finally {
        if (connStatement != null) {
            connStatement.close();
        }
    }


	response.sendRedirect("/integration/sso/webseal/websealsetting.jsp");
	
} else if("restartService".equals(method)) {// 重启服务
	String rules[] = request.getParameterValues("rule");
	
	if("1".equals(saveType)) {// 启用
		// 添加filter配置
		WebSealUtil.deleteFilter();
		WebSealUtil.writeFilter();
		// 添加过滤地址
		WebSealUtil.deleteWebSealRules();
		if(rules != null) {
			WebSealUtil.createWebSealRules(rules);
		}
		
	} else if("2".equals(saveType)) {// 非首次关闭
		// 删除filter配置
		WebSealUtil.deleteFilter();
		// 删除过滤地址
		WebSealUtil.deleteWebSealRules();
		
	}
	
	response.sendRedirect("/integration/sso/webseal/websealsetting.jsp");
	
} else if("getOAAddress".equals(method)) {// 异步加载OA地址
	rs.executeProc("SystemSet_Select","");
	rs.next();
	String oaaddr = Util.null2String(rs.getString("oaaddress"));
	oaaddr = "{\"oaaddr\":\""+oaaddr+"\"}";
	//System.err.print(oaaddr);
	out.print(oaaddr);
	return;
	
}
%>