Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/WebServiceClientHelper.java =================================================================== diff -u -r29504 -r30753 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 29504) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 30753) @@ -1,11 +1,17 @@ package com.forgon.disinfectsystem.datasynchronization.dao.nfykdxnfyy; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.log4j.Logger; +import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.tools.Constants; + /** * 南方医院webservice帮助类 * @author ZhouPeiMian @@ -66,4 +72,52 @@ return result; } + /** + * 将票据ptickets和系统编码pcode信息通过Web Service调用传递给Portal集成平台, + * Portal集成平台如果验证是有效的票据ptickets和系统编码pcode, + * 则返回给追溯系统在平台登录的登录名(即是his的登录账号) + * @param ptickets + * @param pcode + * @return + * @throws Exception + */ + public static String validateSSOTicket(String ptickets, String pcode) throws Exception{ + + StringBuffer request = new StringBuffer(); + request.append(""); + request.append(""); + request.append(""); + request.append(""); + request.append("" + ptickets + ""); + request.append("" + pcode + ""); + request.append(""); + request.append(""); + request.append(""); + + logger.info("单点登录票据ptickets和系统编码pcode验证接口地址:" + DatasyncConstant.SSOWebserviceAddress); + logger.info("单点登录票据ptickets和系统编码pcode验证请求信息:" + request.toString()); + + String xmlResult = ""; + try { + xmlResult = CssdUtils.callWebService(DatasyncConstant.SSOWebserviceAddress, request.toString(), Constants.CHARSET_utf8); + } catch (Exception e) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + e.printStackTrace(new PrintStream(baos)); + String exception = baos.toString(); + logger.info("单点登录票据ptickets和系统编码pcode验证WebService接口调用失败:" + exception); + e.printStackTrace(); + } + + /*xmlResult = ""; + xmlResult += ""; + xmlResult += ""; + xmlResult += "admin"; + xmlResult += ""; + xmlResult += ""; + xmlResult += "";*/ + + logger.info("单点登录票据ptickets和系统编码pcode验证返回信息:" + xmlResult); + return xmlResult; + } + } Index: ssts-web/src/main/webapp/logonSSOForNfykdxnfyy.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/logonSSOForNfykdxnfyy.jsp (revision 0) +++ ssts-web/src/main/webapp/logonSSOForNfykdxnfyy.jsp (revision 30753) @@ -0,0 +1,202 @@ +<%@page import="com.itextpdf.text.log.SysoLogger"%> +<%@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.nfykdxnfyy.WebServiceClientHelper"%> + +<% +ArrayList message = new ArrayList(); +String ptickets = request.getParameter("ptickets"); +String pcode = request.getParameter("pcode"); +if(StringUtils.isNotBlank(ptickets) && StringUtils.isNotBlank(pcode)){ + String xmlResult=""; + String userName=null; + try{ + xmlResult = WebServiceClientHelper.validateSSOTicket(ptickets, pcode); + if(StringUtils.isBlank(xmlResult)){ + message.add("票据验证接口调用失败或返回结果为空"); + }else{ + int beginIndex = xmlResult.indexOf("") + "".length(); + int endIndex = xmlResult.indexOf(""); + userName = xmlResult.substring(beginIndex, endIndex); + } + } 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("ptickets和pcode不能为空"); +} +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"; +//System.out.println(application.getRealPath("/") + imgPath); +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/nfykdxnfyy/DatasyncConstant.java =================================================================== diff -u -r29504 -r30753 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 29504) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 30753) @@ -32,5 +32,11 @@ * 病人信息查询失败标识 */ public final static Integer ResultCode_Fail = -1; + + /** + * 单点登录票据验证服务接口地址 + * http://192.168.128.28:8081/Common_C92_WebService/services/CasValidateServiceImpl?wsdl + */ + public final static String SSOWebserviceAddress = "http://192.168.128.28:8081/Common_C92_WebService/services/CasValidateServiceImpl?wsdl"; } Index: ssts-web/src/main/webapp/WEB-INF/spring/security-standard/applicationContext-acegi-security.xml =================================================================== diff -u -r29871 -r30753 --- ssts-web/src/main/webapp/WEB-INF/spring/security-standard/applicationContext-acegi-security.xml (.../applicationContext-acegi-security.xml) (revision 29871) +++ ssts-web/src/main/webapp/WEB-INF/spring/security-standard/applicationContext-acegi-security.xml (.../applicationContext-acegi-security.xml) (revision 30753) @@ -42,6 +42,7 @@ +