From 992a650c524e7af25120afb3972a5f1ec7f910f9 Mon Sep 17 00:00:00 2001 From: zhulianghua Date: Tue, 14 Aug 2018 17:29:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/Logon.jsp | 53 +++++++++++++++++++++++++++++++++----- WebContent/WEB-INF/web.xml | 7 +++++ 2 files changed, 53 insertions(+), 7 deletions(-) diff --git a/WebContent/Logon.jsp b/WebContent/Logon.jsp index 38f936b1a..5e7c73b00 100644 --- a/WebContent/Logon.jsp +++ b/WebContent/Logon.jsp @@ -93,12 +93,16 @@ public boolean validUserPassword(HttpServletRequest request, Transaction Sqlca,S } Transaction Sqlca = null; + String sUserID = null; + String sPWD = null; + String sScreenWidth = null; + String logonId = null; try { //获得传入的参数:用户登录账号、口令、界面风格 - String sUserID = request.getParameter("UserID"); - - String sPWD = request.getParameter("Password"); - String sScreenWidth = request.getParameter("ScreenWidth"); + sUserID = request.getParameter("UserID"); + logonId = sUserID; + sPWD = request.getParameter("Password"); + sScreenWidth = request.getParameter("ScreenWidth"); //下拉选框用户快速登陆,系统正式运行后可删除 String sUserIDSelected = ""; @@ -118,6 +122,32 @@ public boolean validUserPassword(HttpServletRequest request, Transaction Sqlca,S //取当前用户和机构,并将其放入 Session ASUser CurUser = ASUser.getUser(SpecialTools.real2Amarsoft(sUserID),Sqlca); + //读取上下文单点登陆配置 + String singleSignon = pageContext.getServletContext().getInitParameter("singleSignon"); + String loginType = request.getParameter("loginType"); + if(!"compulsive".equals(loginType) && "true".equals(singleSignon)){ + StringBuffer sql = new StringBuffer(); + sql.append("select count(1) num from user_list where userid='"); + sql.append(sUserID); + sql.append("' and endtime is null group by userid"); + String num = Sqlca.getString(new SqlObject(sql.toString())); + if(null != num){ + throw new Exception("false"); + } + }else if("compulsive".equals(loginType)){ + StringBuffer updateSql = new StringBuffer(); + updateSql.append("update user_list set endtime='"); + updateSql.append(StringFunction.getTodayNow().replaceAll(":", "△")); + updateSql.append("' where userid='"); + updateSql.append(sUserID); + updateSql.append("'"); + SqlObject so = new SqlObject(updateSql.toString()); + so.setDebugSql(so.getDebugSql().replaceAll("△", ":")); + so.setOriginalSql(so.getOriginalSql().replaceAll("△", ":")); + so.setRunSql(so.getRunSql().replaceAll("△", ":")); + Sqlca.executeSQL(so); + } + //设置运行上下文参数 CurARC 在IncludeBegin.jsp中使用 RuntimeContext CurARC = new RuntimeContext(); CurARC.setAttribute("ScreenWidth",sScreenWidth); @@ -134,7 +164,7 @@ public boolean validUserPassword(HttpServletRequest request, Transaction Sqlca,S %> <% return; diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml index 3f967d082..3f73deb64 100644 --- a/WebContent/WEB-INF/web.xml +++ b/WebContent/WEB-INF/web.xml @@ -436,6 +436,13 @@ 5 + + + singleSignon + false + webAppRootKey webapp.port