Index: ssts-web/src/main/webapp/logonSSOForGdskqyy.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/logonSSOForGdskqyy.jsp (revision 0)
+++ ssts-web/src/main/webapp/logonSSOForGdskqyy.jsp (revision 33395)
@@ -0,0 +1,194 @@
+<%@page import="com.forgon.security.model.User"%>
+<%@page import="com.forgon.disinfectsystem.common.CssdUtils"%>
+<%@page import="com.forgon.security.service.UserManager"%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@page import="com.forgon.tools.SpringBeanManger"%>
+<%@page import="com.forgon.tools.Constants"%>
+<%@page import="net.sf.json.JSONObject" %>
+<%@page import="java.io.File" %>
+<%@page import="java.util.ArrayList" %>
+<%@page import="org.apache.commons.lang.StringUtils"%>
+<%@page import="com.forgon.disinfectsystem.datasynchronization.dao.gdskqyy.WebServiceClientHelper"%>
+<%@page import="com.forgon.directory.model.LoginInfo"%>
+<%@ include file="/common/taglibs.jsp" %>
+
+<%
+ArrayList message = new ArrayList();
+String token = request.getParameter("token");
+if(StringUtils.isNotBlank(token)){
+ String xmlResult="";
+ String userName=null;
+ try{
+ userName = WebServiceClientHelper.validateSSOTicket(token);
+ } catch (Exception e) {
+ message.add(e.getMessage());
+ }
+
+ if(StringUtils.isNotBlank(userName)){
+ if(StringUtils.equals(userName, "-1")){
+ message.add("登入名/账号不存在");
+ } else {
+ UserManager userManager=(UserManager)SpringBeanManger.getBean("userManager");
+ User user=userManager.getFirst("name", userName);
+ if(user==null){
+ message.add("用户:"+userName+"不存在");
+ }else{
+ session.setAttribute("barcode", user.getBarcode());
+ }
+ }
+ }
+}else{
+ message.add("token不能为空");
+}
+pageContext.setAttribute("message", message);
+
+String companyName = CssdUtils.getSystemSetConfigByName("companyName");
+String companyNameStr = "";
+if(companyName == null || companyName.equals("forgon")){
+ companyNameStr = "©2021 广州孚峻信息技术有限公司 版权所有";
+}else if(companyName.equals("dingxiang")){
+ companyNameStr = "©2021 广州丁香软件有限公司 版权所有";
+}
+session.setAttribute("companyName", companyNameStr);
+String project = CssdUtils.getConfigProperty("project");
+session.setAttribute("profile", project);
+
+String imgPath = "disinfectsystem/config/" + project + "/img/logo_" + project +".png";
+File file = new File(application.getRealPath("/") + imgPath);
+if(file.exists()){
+ request.setAttribute("logoPath",imgPath);
+}else{
+ if(companyName == null || companyName.equals("forgon")){
+ request.setAttribute("logoPath","themes/portalPage/img/logo_Forgon.png");
+ }else if(companyName.equals("dingxiang")){
+ request.setAttribute("logoPath","themes/portalPage/img/logo_dingxiangsoft.png");
+ }
+}
+
+%>
+
+
+
+
+
+
+
+
+消毒供应质量追溯管理系统
+<%-- --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gdskqyy/DatasyncConstant.java
===================================================================
diff -u -r33369 -r33395
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gdskqyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 33369)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gdskqyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 33395)
@@ -19,6 +19,16 @@
public final static String PatientInfoQueryWebserviceAddress = "http://172.16.1.28/soap/JHIPLIB.SOAP.BS.HL7V3Service.cls?CfgItem=JH0004患者基本信息查询服务";
/**
+ * 单点登录验证地址
+ */
+ public final static String SSOLoginWebserviceAddress = "http://172.16.1.29:10008/portal/services/userinfo";
+
+ /**
+ * 追溯系统编码
+ */
+ public final static String SYSTEM_CODE = "XDGY";
+
+ /**
* 手术信息查询的服务标识
*/
public final static String OperationInfoQueryInteractionId = "JH0215";
Index: ssts-web/src/main/webapp/WEB-INF/spring/security-standard/applicationContext-acegi-security.xml
===================================================================
diff -u -r33330 -r33395
--- ssts-web/src/main/webapp/WEB-INF/spring/security-standard/applicationContext-acegi-security.xml (.../applicationContext-acegi-security.xml) (revision 33330)
+++ ssts-web/src/main/webapp/WEB-INF/spring/security-standard/applicationContext-acegi-security.xml (.../applicationContext-acegi-security.xml) (revision 33395)
@@ -50,6 +50,7 @@
+
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gdskqyy/WebServiceClientHelper.java
===================================================================
diff -u -r33359 -r33395
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gdskqyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 33359)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gdskqyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 33395)
@@ -1,6 +1,7 @@
package com.forgon.disinfectsystem.datasynchronization.dao.gdskqyy;
import java.nio.charset.Charset;
+import java.util.Calendar;
import java.util.UUID;
import org.apache.commons.lang.StringUtils;
@@ -13,6 +14,7 @@
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
+
import com.forgon.tools.date.DateTools;
/**
@@ -44,7 +46,7 @@
if(StringUtils.equals(interactionId, DatasyncConstant.OperationInfoQueryInteractionId)){
inputXmlSB.append("");
- inputXmlSB.append("");
+ inputXmlSB.append("");
inputXmlSB.append("");
inputXmlSB.append("");
inputXmlSB.append("");
@@ -54,14 +56,14 @@
inputXmlSB.append("");
inputXmlSB.append("");
inputXmlSB.append("");
- inputXmlSB.append("- ");
+ inputXmlSB.append("
- ");
inputXmlSB.append("
");
inputXmlSB.append("");
// sender
inputXmlSB.append("");
inputXmlSB.append("");
inputXmlSB.append("");
- inputXmlSB.append("- ");
+ inputXmlSB.append("
- ");
inputXmlSB.append("
");
inputXmlSB.append("");
// controlActProcess
@@ -87,11 +89,15 @@
inputXmlSB.append("");
inputXmlSB.append("");
inputXmlSB.append("");
- //
+ // 只查最近一周的记录
+ Calendar calendar = Calendar.getInstance();
+ String high = DateTools.formatTime(calendar, "yyyyMMddHHmmss");
+ calendar.add(Calendar.DAY_OF_MONTH, -7);
+ String low = DateTools.formatTime(calendar, "yyyyMMddHHmmss");
inputXmlSB.append("");
inputXmlSB.append("");
- inputXmlSB.append("");
- inputXmlSB.append("");
+ inputXmlSB.append("");
+ inputXmlSB.append("");
inputXmlSB.append("");
inputXmlSB.append("");
inputXmlSB.append("");
@@ -121,14 +127,14 @@
inputXmlSB.append("");
inputXmlSB.append("");
inputXmlSB.append("");
- inputXmlSB.append(" ");
+ inputXmlSB.append("- ");
inputXmlSB.append("
");
inputXmlSB.append("");
// sender
inputXmlSB.append("");
inputXmlSB.append("");
inputXmlSB.append("");
- inputXmlSB.append(" ");
+ inputXmlSB.append("- ");
inputXmlSB.append("
");
inputXmlSB.append("");
@@ -217,5 +223,61 @@
closeableHttpClient.close();
return retStr;
}
+
+ /**
+ * 单点登录验证接口
+ * @param sessionID
+ * @return
+ * @throws Exception
+ */
+ public static String validateSSOTicket(String sessionID) throws Exception{
+ String request = buildSSOLoginRequest(sessionID, DatasyncConstant.SYSTEM_CODE);
+ logger.info("单点登录验证接口请求参数:" + request);
+ String xmlResult = doPostSoap1_2(DatasyncConstant.SSOLoginWebserviceAddress, request);
+ //String xmlResult = " true 成功 2078 蓝天祥 admin MQ== 男性 KwMcLtbXwB7dot07a5YB2w== JXJlW4vwMqxrs3D1ZASbkd+s3UfMGuNW9hgBqZN2dvw= ORETR+ygUboj2KJHqdGzCw== 2022-03-14 18:07:33.0 2022-02-14 00:00:00.0 2036-02-29 00:00:00.0 ]]> ";
+ //String xmlResult = " falsesessionID 已失效]]> ";
+ logger.info("单点登录验证接口返回消息:" + xmlResult);
+ if(StringUtils.isBlank(xmlResult)){
+ throw new RuntimeException("票据验证接口调用失败或返回结果为空");
+ }else{
+ int beginIndex = xmlResult.indexOf("");
+ int endIndex = xmlResult.indexOf("");
+ if(beginIndex != -1 && endIndex != -1){
+ return xmlResult.substring(beginIndex + "".length(), endIndex);
+ }else{
+ beginIndex = xmlResult.indexOf("");
+ endIndex = xmlResult.indexOf("");
+ if(beginIndex != -1 && endIndex != -1){
+ String resultContent = xmlResult.substring(beginIndex + "".length(), endIndex);
+ throw new RuntimeException(resultContent);
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 构建请求参数
+ * @param sessionID
+ * @param systemCode
+ * @return
+ */
+ private static String buildSSOLoginRequest(String sessionID, String systemCode) {
+
+ StringBuffer request = new StringBuffer();
+ request.append("");
+ request.append("");
+ request.append("");
+ request.append("");
+ request.append("");
+ request.append("" + sessionID + "");
+ request.append("" + DatasyncConstant.SYSTEM_CODE + "");
+ request.append("]]>");
+ request.append("");
+ request.append("");
+ request.append("");
+ return request.toString();
+ }
+
}