From 14cb0dae45b8a93b6d2d73cd27e134f149ac1040 Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Wed, 25 Jun 2025 11:26:16 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E5=BE=85=E5=8A=9E=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E5=88=B0=E5=BE=85=E5=8A=9E=E9=A1=B5=E9=9D=A2bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/eoss/SSOPluginLogin.java | 28 +------------------ 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index 375f107..32b136b 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -2,9 +2,7 @@ package shkd.sys.sys.eoss; import kd.bos.cache.CacheFactory; import kd.bos.cache.DistributeSessionlessCache; -import kd.bos.exception.ErrorCode; import kd.bos.exception.KDBizException; -import kd.bos.exception.KDException; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.login.thirdauth.ThirdSSOAuthHandler; @@ -12,13 +10,10 @@ import kd.bos.login.thirdauth.UserAuthResult; import kd.bos.login.thirdauth.UserProperType; import kd.bos.servicehelper.user.UserServiceHelper; import org.apache.commons.lang3.StringUtils; -import shkd.sys.sys.utils.AesUtils; import javax.servlet.http.*; import java.io.IOException; -import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; -import java.security.PrivateKey; import java.util.Base64; @@ -66,7 +61,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { // String skIp = httpServletRequest.getRemoteAddr(); String skUrl = httpServletRequest.getRequestURL().toString(); skUrl = skUrl.substring(0, skUrl.indexOf("ierp")); - String redirect = skUrl+"ierp/index.html?param="+queryUrl; + String redirect = "http://10.1.7.83:8022/"+"ierp/index.html?param="+queryUrl; //认证中心的登录地址 logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); String ssourl = ip + "/service/SGE-project-sctz-master/pc/dist/login.html"; @@ -138,7 +133,6 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { // } // logger.info("获取待办链接中参数userName:" + userName); -// RSAUtils. logger.info(String.format("getTrdSSOAuth→授权码code:%s", code)); result.setUserType(UserProperType.UserName); if (StringUtils.isEmpty(code)) { @@ -169,26 +163,6 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { throw new KDBizException("获取用户信息接口异常,SSO用户登录失败!" + e); } } -// else if (StringUtils.isNotEmpty(userName)) { -// -//// Object o = SystemParamServiceHelper.loadPublicParameterFromCache("shkd_privatekeystring_tag"); -//// logger.info("获取公共参数shkd_privatekeystring_tag:"+o); -// logger.info("加密后user:" + userName); -//// String privateKeyString = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDVcEZaQoPn+qado8nw5ZvKlbxEh/xQ9AiBMRUFpY0XibkrCa1T2A7bTWztoAkTaBby1ynOOX4q1BSTGiDVOcXkCZgMteqAlvg3y9YZTlV/6MkbPLNPZTuWgNMa2C6bMkkHfJJqkDI8IZbe3IUxNk4Rz6JWsLDaI6PNhSKbRIq3MHj/emsmkQN+ePAz0Elh4b/bD2L63lmJJEtoK9Ira2b/gl+VwqOiaZb8iZ4PrvCKQJucAPkdQAb2Etcv0Clb/VnzdgzzcR+gU5Ak2hJns29IFMS4jOGhAJkdLQX+fW1KS0Am9gsvYznIbv8R0Bv/PDz+jHrd36a9sMr/ixzOy3QBAgMBAAECggEAXOVc+XPxzUm+suXSwtJsmCPLqVg2bVWJThF6wNZpLlF3ElBH7DIhZTmxq0r4KEYpltAnFebYDvP3cH7yw1s90h6K2x1iT01mA4LoUGNTuzQqM3yb3naFFOBFAW4N+uZL+sIxR8gy1REZhS4dmmm0WPQyB+EnWAojBRRpF4MhjND0ncSRJhWLTg3SiOSidedaVuI9AncwXlsH3hvJTM9xrL86tGIuFZe1JDCbg5zCU0Scz6LFnSc4UISajPEy0u7v8l74k2Tqr+XXOCAbG4gSr12BazQ7c7pT0hnwE1t/WKdeu033dbTfz+FkZ/ARFgfsjuGBrc2LA7A/FbOD28mTcQKBgQDrC41Z14Iz4N+hr4fvilCqou/GcF7T5CP//tKqj3RRgCYu3XF1btQ+iXMRc40NzdCdxmH+BMJ9lS51Soi0dzvHuQTn/A/3cviBfmzptqTMp0T2RpXQ0bSe4wqUT3fdenFm39xbw9p+b+eknZ8lrGM6fn06GBP6mQ+USMvZAnkdawKBgQDod5hasx8rMveJsNdqp/vGOFVtCh6RVX0rV8vlJ1tLGAhxBQbPbbmB/H773Fqyhc7NOWPFbSuHXtZtArgTY5wHwHcBZ41nB7E5Y40wMql8eNFhBFAb1M8xy7o+cX5gIsphrBRiGGM9MBhQNea2cH3flKW9NPKdvH3dF0sv/OGDQwKBgQClV60JpDZtdCUcwjPn5+6y+oedmnK6r+Q7MvDTFrMGmhVCJnin2Vzo2RvfDOAO89drBaDtZj/Cw+y4icP831toNdkjsAczVOdHgL3w8pCffpNeg2zkRoC+vIw2pGh3nqija5rB2taa1vGmtVK817W98jj5YvK6+G0jLMppT/oPHQKBgQC7S3Ai02Jvabbq5uIIeqNtxwF8wsRyD9CzVR9f11/Elu5mMMiV4y+tPQQKZDVm1EwUKQLrk9OYU56rYZ9xb7XMwRKgvQ++TQJK3JxqksbfFHCNm+33HnR5CE1b9hD938ny+7PIfSGnsNJF/ceOgf/IXXlTgg9favh1Y0ketr3zBQKBgFKWHvw/i1j4F/6vQIBn4ke22Ja8qXDNLfIUEcgqqvIx5N6Imv8DLyvu56CWveThVzk810VHRqoJ3aIgA8oTs/mQyd8G/S8jbyufl2GeoHap9azSr63HZh4v8ZBMQuA6xP2CEUByEyIWknwo7pp9yj8gJZUFmvTthY6SvkYrqg1H"; -//// logger.info("私钥string:" + privateKeyString); -//// String cleanedBase64String = privateKeyString.replaceAll("[^A-Za-z0-9+/=]", ""); -// try { -// String user = AesUtils.aesDecryptString(userName); -// logger.info("SSO用户名:" + user); -// result.setUser(user); -// result.setSucess(true); -// logger.info("SSO用户登录成功,进入苍穹系统"); -// } catch (Exception e) { -// logger.info("私钥获取密钥异常,异常信息:{}", e); -// ErrorCode errorCode = new ErrorCode("error_code", "私钥解密出现异常,请联系运维人员排查!"); -// throw new KDException(errorCode, e); -// } -// } return result; } } From da6d39dc02f30816397eb64d72698abd9afcbe1d Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Wed, 25 Jun 2025 11:27:50 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E5=BE=85=E5=8A=9E=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E5=88=B0=E5=BE=85=E5=8A=9E=E9=A1=B5=E9=9D=A2bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index 32b136b..d2e3617 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -18,8 +18,6 @@ import java.util.Base64; /** - * @author: Lang - * @description: 单点登录-川投统一认证 **/ public class SSOPluginLogin implements ThirdSSOAuthHandler { private final static Log logger = LogFactory.getLog(SSOPluginLogin.class); @@ -61,6 +59,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { // String skIp = httpServletRequest.getRemoteAddr(); String skUrl = httpServletRequest.getRequestURL().toString(); skUrl = skUrl.substring(0, skUrl.indexOf("ierp")); + logger.info("获取地址:"+skUrl); String redirect = "http://10.1.7.83:8022/"+"ierp/index.html?param="+queryUrl; //认证中心的登录地址 logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); From 714922e94508a9786f45073a41f873674c00be50 Mon Sep 17 00:00:00 2001 From: 16358 <1635849544@qq.com> Date: Wed, 25 Jun 2025 14:58:06 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A?= =?UTF-8?q?=E5=88=98=E6=A3=AE=E6=BE=B3=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/6?= =?UTF-8?q?/25=2014=EF=BC=9A57=20=E5=86=85=E5=AE=B9=EF=BC=9A=E4=B8=AD?= =?UTF-8?q?=E4=BB=8B=E6=9C=BA=E6=9E=84=E6=8B=9B=E6=A0=87=E9=81=B4=E9=80=89?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=AD=E4=BB=8B=E7=B1=BB=E5=9E=8B=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=EF=BC=8C=E5=B9=B6=E5=8F=82=E4=B8=8E=E5=90=8E=E7=BB=AD?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E4=B8=AD=E4=BB=8B=E6=9C=BA=E6=9E=84=E7=9A=84?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E9=80=BB=E8=BE=91=EF=BC=9B=20=20=20=20?= =?UTF-8?q?=E5=80=BA=E5=88=B8=E5=8F=91=E8=A1=8C/=E5=8F=91=E8=A1=8C?= =?UTF-8?q?=E8=AE=A1=E5=88=92=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=80=BA=E5=88=B8?= =?UTF-8?q?=E8=AF=84=E7=BA=A7=E6=9C=BA=E6=9E=84=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E8=AF=A5=E5=AD=97=E6=AE=B5=E4=BB=8E=E8=AF=84=E7=BA=A7=E6=9C=BA?= =?UTF-8?q?=E6=9E=84=E5=8C=BA=E5=88=86=E5=87=BA=E6=9D=A5=EF=BC=8C=E5=8D=95?= =?UTF-8?q?=E7=8B=AC=E6=8C=81=E6=9C=89=E5=AF=B9=E5=BA=94=E7=9A=84=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E9=80=BB=E8=BE=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tmc/InterMediarySelectListPlugin.java | 306 ++++++++++++++++++ 1 file changed, 306 insertions(+) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/InterMediarySelectListPlugin.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/InterMediarySelectListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/InterMediarySelectListPlugin.java new file mode 100644 index 0000000..547a099 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/InterMediarySelectListPlugin.java @@ -0,0 +1,306 @@ +package shkd.sys.sys.plugin.tmc; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.entity.LocaleString; +import kd.bos.dataentity.resource.ResManager; +import kd.bos.dataentity.serialization.SerializationUtils; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.entity.datamodel.ListSelectedRow; +import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.filter.CommonFilterColumn; +import kd.bos.filter.FilterColumn; +import kd.bos.form.CloseCallBack; +import kd.bos.form.FormShowParameter; +import kd.bos.form.ShowType; +import kd.bos.form.control.Button; +import kd.bos.form.control.Control; +import kd.bos.form.control.events.BeforeClickEvent; +import kd.bos.form.events.*; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.ComboEdit; +import kd.bos.form.field.ComboItem; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.form.operate.AbstractOperate; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.list.BillList; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.tmc.bdim.common.enums.MidOrgType; +import kd.tmc.fbp.common.enums.BillStatusEnum; +import kd.tmc.fbp.common.helper.TmcDataServiceHelper; +import kd.tmc.fbp.common.util.EmptyUtil; +import kd.tmc.fbp.formplugin.list.AbstractTmcListPlugin; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author 16358 + * @date 2025/6/25 + */ +public class InterMediarySelectListPlugin extends AbstractFormPlugin implements BeforeF7SelectListener { + public InterMediarySelectListPlugin() { + } + + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit control = (BasedataEdit)this.getControl("e_midorgname"); + if (control != null) { + control.addBeforeF7SelectListener(this); + } + + this.addClickListeners(new String[]{"btnok"}); + } + + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String key = beforeF7SelectEvent.getProperty().getName(); + int index = beforeF7SelectEvent.getRow(); + DynamicObject dataEntity = this.getModel().getDataEntity(true); + switch (key) { + case "e_midorgname": + DynamicObjectCollection entities = dataEntity.getDynamicObjectCollection("entryentity"); + DynamicObject entry = (DynamicObject)entities.get(index); + String eMidOrgTypeWin = entry.getString("e_midorgtypewin"); + QFilter qFilter = new QFilter("orgtype", "=", eMidOrgTypeWin); + ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter(); + showParameter.getListFilterParameter().getQFilters().add(qFilter); + default: + } + } + + public void beforeFieldPostBack(BeforeFieldPostBackEvent e) { + super.beforeFieldPostBack(e); + Control source = (Control)e.getSource(); + String key = source.getKey(); + int rowIndex = e.getRowIndex(); + Object value = e.getValue(); + if ("e_fee".equals(key) && value == null) { + this.getModel().setValue("e_fee", BigDecimal.ZERO, rowIndex); + this.getView().updateView(key, rowIndex); + } + + } + + public void beforeBindData(EventObject e) { + super.beforeBindData(e); + Object pkId = this.getView().getFormShowParameter().getCustomParam("pkid"); + if (!EmptyUtil.isEmpty(pkId)) { + DynamicObject selectBill = TmcDataServiceHelper.loadSingle(pkId, "bdim_intermediaryselect"); + DynamicObjectCollection winningBidderEntries = selectBill.getDynamicObjectCollection("winningbidderentry"); + DynamicObjectCollection entryEntities = this.getModel().getEntryEntity("entryentity"); + Object currencyId = this.getView().getFormShowParameter().getCustomParam("currencyid"); + Long currency = null; + if (EmptyUtil.isNoEmpty(currencyId)) { + currency = Long.parseLong(currencyId.toString()); + } + + this.getModel().setValue("currency", currency); + if (winningBidderEntries.size() != 0) { + entryEntities.clear(); + } + + int i = 0; + Iterator var9 = winningBidderEntries.iterator(); + + while(var9.hasNext()) { + DynamicObject entry = (DynamicObject)var9.next(); + DynamicObject entryEntity = entryEntities.addNew(); + entryEntity.set("seq", i++); + entryEntity.set("e_midorgtypewin", entry.get("e_midorgtypewin")); + entryEntity.set("e_underwritertypewin", entry.get("e_underwritertypewin")); + entryEntity.set("e_midorgname", entry.get("e_midorgname")); + entryEntity.set("shkd_pglx1", entry.get("shkd_pglx1")); + entryEntity.set("e_openingdatewin", entry.get("e_openingdatewin")); + entryEntity.set("e_fee", entry.get("e_fee")); + entryEntity.set("e_feerate", entry.get("e_feerate")); + DynamicObjectCollection eBidWinningNoticeEntry = entry.getDynamicObjectCollection("e_bidwinningnotice"); + DynamicObjectCollection noticeEntryEntity = entryEntity.getDynamicObjectCollection("e_bidwinningnotice"); + noticeEntryEntity.clear(); + Iterator var14 = eBidWinningNoticeEntry.iterator(); + + while(var14.hasNext()) { + DynamicObject bidWinningNoticeEntry = (DynamicObject)var14.next(); + noticeEntryEntity.addNew().set("fbasedataid", bidWinningNoticeEntry.get("fbasedataid")); + } + + DynamicObjectCollection eContractEntry = entry.getDynamicObjectCollection("e_contract"); + DynamicObjectCollection eContractEntryEntity = entryEntity.getDynamicObjectCollection("e_contract"); + eContractEntryEntity.clear(); + Iterator var16 = eContractEntry.iterator(); + + while(var16.hasNext()) { + DynamicObject contractEntry = (DynamicObject)var16.next(); + eContractEntryEntity.addNew().set("fbasedataid", contractEntry.get("fbasedataid")); + } + + entryEntity.set("e_explainwin", entry.get("e_explainwin")); + } + + this.getView().updateView("entryentity"); + } + } + + public void afterBindData(EventObject e) { + super.afterBindData(e); + DynamicObjectCollection entryEntity = this.getModel().getDataEntity().getDynamicObjectCollection("entryentity"); + + for(int i = 0; i < entryEntity.size(); ++i) { + DynamicObject entry = (DynamicObject)entryEntity.get(i); + String eMidOrgType = entry.getString("e_midorgtypewin"); + this.midOrgTypeChange(eMidOrgType, i); + } + + Object midOrgType = this.getView().getFormShowParameter().getCustomParam("midOrgType"); + Set midOrgTypeList = (Set) SerializationUtils.fromJsonString(midOrgType.toString(), Set.class); + ComboEdit midOrgTypeWin = (ComboEdit)this.getView().getControl("e_midorgtypewin"); + List comboItems = new ArrayList(5); + Iterator var7 = midOrgTypeList.iterator(); + + while(var7.hasNext()) { + String mot = (String)var7.next(); + comboItems.add(new ComboItem(new LocaleString(MidOrgType.getName(mot)), mot)); + } + + midOrgTypeWin.setComboItems(comboItems); + } + + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String key = e.getProperty().getName(); + ChangeData[] changeData = e.getChangeSet(); + Object newValue = changeData[0].getNewValue(); + Object oldValue = changeData[0].getOldValue(); + int iRow = changeData[0].getRowIndex(); + if (newValue != oldValue) { + switch (key) { + case "e_midorgtypewin": + this.midOrgTypeChange((String)newValue, iRow); + this.getModel().setValue("e_underwritertypewin", (Object)null, iRow); + this.getModel().setValue("e_midorgname", (Object)null, iRow); + default: + } + } + } + + private void midOrgTypeChange(String newValue, int index) { + Boolean isUnderWriter = "underwriter".equals(newValue); + ((ComboEdit)this.getControl("e_underwritertypewin")).setMustInput(isUnderWriter); + this.getView().setEnable(isUnderWriter, index, new String[]{"e_underwritertypewin"}); + } + + public void beforeClick(BeforeClickEvent evt) { + super.beforeClick(evt); + Object source = evt.getSource(); + String key = ((Button)source).getKey(); + if ("btnok".equals(key)) { + Object pkId = this.getView().getFormShowParameter().getCustomParam("pkid"); + DynamicObject selectBill = TmcDataServiceHelper.loadSingle(pkId, "bdim_intermediaryselect"); + String billStatus = selectBill.getString("billstatus"); + if (!"C".equals(billStatus)) { + evt.setCancel(true); + this.getView().showTipNotification(ResManager.loadKDString("操作单据不为已审核状态,请检查。", "WinningBidderPlugin_5", "tmc-bdim-formplugin", new Object[0])); + return; + } + + DynamicObjectCollection entryEntities = this.getModel().getEntryEntity("entryentity"); + + for(int i = 0; i < entryEntities.size(); ++i) { + DynamicObject entry = (DynamicObject)entryEntities.get(i); + String eMidOrgTypeWin = entry.getString("e_midorgtypewin"); + String eUnderWriterTypeWin = entry.getString("e_underwritertypewin"); + if (EmptyUtil.isBlank(eMidOrgTypeWin)) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("第%s行:请填写”中介机构类型“。", "WinningBidderPlugin_4", "tmc-bdim-formplugin", new Object[0]), i + 1)); + return; + } + + if ("underwriter".equals(eMidOrgTypeWin) && EmptyUtil.isBlank(eUnderWriterTypeWin)) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("第%s行:”中介机构类型“为承销商时,”承销商类别“必填。", "WinningBidderPlugin_0", "tmc-bdim-formplugin", new Object[0]), i + 1)); + return; + } + + DynamicObject eMidOrgName = entry.getDynamicObject("e_midorgname"); + if (eMidOrgName == null) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("第%s行:请填写“机构名称”。", "WinningBidderPlugin_1", "tmc-bdim-formplugin", new Object[0]), i + 1)); + return; + } + + Date eOpeningDateWin = entry.getDate("e_openingdatewin"); + if (EmptyUtil.isEmpty(eOpeningDateWin)) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("第%s行:请填写“开标日期”。", "WinningBidderPlugin_2", "tmc-bdim-formplugin", new Object[0]), i + 1)); + return; + } + } + } + + } + + public void click(EventObject evt) { + super.click(evt); + Control control = (Control)evt.getSource(); + if (StringUtils.equals("btnok", control.getKey())) { + Object pkId = this.getView().getFormShowParameter().getCustomParam("pkid"); + DynamicObject selectBill = TmcDataServiceHelper.loadSingle(pkId, "bdim_intermediaryselect"); + DynamicObjectCollection winningBidderEntries = selectBill.getDynamicObjectCollection("winningbidderentry"); + DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("entryentity"); + winningBidderEntries.clear(); + int i = 0; + Iterator var8 = entryEntity.iterator(); + + while(var8.hasNext()) { + DynamicObject entry = (DynamicObject)var8.next(); + DynamicObject winningBidderEntry = winningBidderEntries.addNew(); + winningBidderEntry.set("seq", i++); + winningBidderEntry.set("e_midorgtypewin", entry.get("e_midorgtypewin")); + winningBidderEntry.set("e_underwritertypewin", entry.get("e_underwritertypewin")); + winningBidderEntry.set("e_midorgname", entry.get("e_midorgname")); + winningBidderEntry.set("shkd_pglx1", entry.get("shkd_pglx1")); + winningBidderEntry.set("e_openingdatewin", entry.get("e_openingdatewin")); + winningBidderEntry.set("e_fee", entry.get("e_fee")); + winningBidderEntry.set("e_feerate", entry.get("e_feerate")); + DynamicObjectCollection eBidWinningNoticeEntry = entry.getDynamicObjectCollection("e_bidwinningnotice"); + DynamicObjectCollection noticeEntryEntity = winningBidderEntry.getDynamicObjectCollection("e_bidwinningnotice"); + noticeEntryEntity.clear(); + Iterator var13 = eBidWinningNoticeEntry.iterator(); + + while(var13.hasNext()) { + DynamicObject bidWinningNoticeEntry = (DynamicObject)var13.next(); + noticeEntryEntity.addNew().set("fbasedataid", bidWinningNoticeEntry.get("fbasedataid")); + } + + DynamicObjectCollection eContractEntry = entry.getDynamicObjectCollection("e_contract"); + DynamicObjectCollection eContractEntryEntity = winningBidderEntry.getDynamicObjectCollection("e_contract"); + eContractEntryEntity.clear(); + Iterator var15 = eContractEntry.iterator(); + + while(var15.hasNext()) { + DynamicObject contractEntry = (DynamicObject)var15.next(); + eContractEntryEntity.addNew().set("fbasedataid", contractEntry.get("fbasedataid")); + } + + winningBidderEntry.set("e_explainwin", entry.get("e_explainwin")); + } + + if (entryEntity.size() == 0) { + selectBill.set("callbizstatus", "calling"); + } else { + selectBill.set("callbizstatus", "called"); + } + + SaveServiceHelper.save(new DynamicObject[]{selectBill}); + this.getView().close(); + } + + } +} \ No newline at end of file From 9f8e22db412c9f75548b2b7a0db512778ee845c9 Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Wed, 25 Jun 2025 16:59:29 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=96=B0oa=E5=BE=85=E5=8A=9E=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E5=88=B0=E5=BE=85=E5=8A=9E=E9=A1=B5=E9=9D=A2bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/eoss/SSOPluginLogin.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index d2e3617..a9ac879 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -9,6 +9,7 @@ import kd.bos.login.thirdauth.ThirdSSOAuthHandler; import kd.bos.login.thirdauth.UserAuthResult; import kd.bos.login.thirdauth.UserProperType; import kd.bos.servicehelper.user.UserServiceHelper; +import kd.bos.util.RevProxyUtil; import org.apache.commons.lang3.StringUtils; import javax.servlet.http.*; @@ -27,7 +28,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { private final String CLIENT_ID2 = System.getProperty("scnyfz-clientKey"); private final String CLIENT_SECRET2 = System.getProperty("scnyfz-scict"); - private final String EOSS_IP2 = System.getProperty("scnyfz-ip"); + private final String EOSS_IP2 = System.getProperty("scnyfz-ip2"); /** * 方法实现用户没有登录的时候跳转认证中心的登录地址 @@ -57,10 +58,11 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { }else{ queryUrl = Base64.getEncoder().encodeToString(queryUrl.getBytes(StandardCharsets.UTF_8)); // String skIp = httpServletRequest.getRemoteAddr(); - String skUrl = httpServletRequest.getRequestURL().toString(); - skUrl = skUrl.substring(0, skUrl.indexOf("ierp")); +// String skUrl = httpServletRequest.getRequestURL().toString(); +// skUrl = skUrl.substring(0, skUrl.indexOf("ierp")); + String skUrl = RevProxyUtil.getURLContextPath(httpServletRequest); logger.info("获取地址:"+skUrl); - String redirect = "http://10.1.7.83:8022/"+"ierp/index.html?param="+queryUrl; + String redirect = skUrl+"index.html?param="+queryUrl; //认证中心的登录地址 logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); String ssourl = ip + "/service/SGE-project-sctz-master/pc/dist/login.html"; @@ -76,7 +78,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { } } else { //重定向的统一认证的地址 获取授权码 - ssourl = String.format("%s/sso2/authCenter/authorize?client_id=%s&response_type=code&sessionKeep=false&authType=0&redirect_uri=%s", + ssourl = String.format("%s/sso2/authCenter/authorize?client_id=%s&response_type=code&sessionKeep=true&authType=0&redirect_uri=%s", ip, client, redirect); logger.info(String.format("重定向地址→sendRedirect:%s", ssourl)); } @@ -124,8 +126,8 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { } -// //获取返回的 sessionId -// String sessionId = httpServletRequest.getParameter("sessionId"); + //获取返回的 sessionId + String sessionId = httpServletRequest.getParameter("sessionId"); // String userName = httpServletRequest.getParameter("userName"); // if (userName != null) { // userName = userName.replace(" ", "+"); // 将空格替换为 + 号 @@ -154,9 +156,9 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { result.setUser(user); result.setSucess(true); logger.info("SSO用户登录成功,进入苍穹系统"); -// String userKey = "user_sessionId_" + user; // 构造一个唯一的键 -// DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); -// cache.put(userKey, sessionId);//将自定义参数加入缓存 + String userKey = "user_sessionId_" + user; // 构造一个唯一的键 + DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); + cache.put(userKey, sessionId);//将自定义参数加入缓存 } } catch (Exception e) { throw new KDBizException("获取用户信息接口异常,SSO用户登录失败!" + e); From 262fa0e47e2e76068050ce335e6eab49988c6299 Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Wed, 25 Jun 2025 17:56:50 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=96=B0oa=E5=BE=85=E5=8A=9E=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E5=88=B0=E5=BE=85=E5=8A=9E=E9=A1=B5=E9=9D=A2bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/eoss/SSOPluginLogin.java | 61 +++++++------------ 1 file changed, 23 insertions(+), 38 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index a9ac879..0302ffc 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -2,7 +2,6 @@ package shkd.sys.sys.eoss; import kd.bos.cache.CacheFactory; import kd.bos.cache.DistributeSessionlessCache; -import kd.bos.exception.KDBizException; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.login.thirdauth.ThirdSSOAuthHandler; @@ -57,9 +56,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { }else{ queryUrl = Base64.getEncoder().encodeToString(queryUrl.getBytes(StandardCharsets.UTF_8)); -// String skIp = httpServletRequest.getRemoteAddr(); -// String skUrl = httpServletRequest.getRequestURL().toString(); -// skUrl = skUrl.substring(0, skUrl.indexOf("ierp")); +// String skIp = httpServletRequest.getRemo String skUrl = RevProxyUtil.getURLContextPath(httpServletRequest); logger.info("获取地址:"+skUrl); String redirect = skUrl+"index.html?param="+queryUrl; @@ -112,11 +109,26 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { UserAuthResult result = new UserAuthResult(); //获取返回的授权码 String code = httpServletRequest.getParameter("code"); + logger.info(String.format("getTrdSSOAuth→授权码code:%s", code)); + //获取返回的 sessionId + String sessionId = httpServletRequest.getParameter("sessionId"); + logger.info(String.format("getTrdSSOAuth→sessionId:%s", sessionId)); + //调用EOSS获取token接口 + String access_token = AuthService.accessToken(code, ip, client, secret); + logger.info(String.format("accessToken返回数据:%s", access_token)); + //调用EOSS获取用户信息接口 + String user = AuthService.getUserInfo(access_token, ip, client, secret); + logger.info(String.format("getUserInfo返回数据:%s", user)); + String userKey = "user_sessionId_" + user; + DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); + cache.put(userKey, sessionId); String param = httpServletRequest.getParameter("param"); + //解码 if(param!=null){ byte[] decodedBytes = Base64.getDecoder().decode(param); String paramString = new String(decodedBytes, StandardCharsets.UTF_8); try { + //二次重定向到待办页面,并且去除EOSS返回的sessionId httpServletResponse.sendRedirect(httpServletRequest.getRequestURI()+"?"+paramString+"&code="+code); } catch (IOException e) { throw new RuntimeException(e); @@ -124,45 +136,18 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { result.setSucess(false); return result; } - - - //获取返回的 sessionId - String sessionId = httpServletRequest.getParameter("sessionId"); -// String userName = httpServletRequest.getParameter("userName"); -// if (userName != null) { -// userName = userName.replace(" ", "+"); // 将空格替换为 + 号 -// } -// logger.info("获取待办链接中参数userName:" + userName); - - logger.info(String.format("getTrdSSOAuth→授权码code:%s", code)); + //二次重定向进入 result.setUserType(UserProperType.UserName); if (StringUtils.isEmpty(code)) { logger.error("getTrdSSOAuth→授权码code为空"); result.setSucess(false); return result; - } else if (StringUtils.isNotEmpty(code)) { - try { - //TODO:调用accessToken方法 - String access_token = AuthService.accessToken(code, ip, client, secret); - logger.info(String.format("accessToken返回数据:%s", access_token)); - - //TODO:调用getUserInfo方法 - String user = AuthService.getUserInfo(access_token, ip, client, secret); - logger.info(String.format("getUserInfo返回数据:%s", user)); - - if (user != null) { - //当前返回类型手机,用户名,email,工号 - result.setUserType(UserProperType.UserName); - result.setUser(user); - result.setSucess(true); - logger.info("SSO用户登录成功,进入苍穹系统"); - String userKey = "user_sessionId_" + user; // 构造一个唯一的键 - DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); - cache.put(userKey, sessionId);//将自定义参数加入缓存 - } - } catch (Exception e) { - throw new KDBizException("获取用户信息接口异常,SSO用户登录失败!" + e); - } + } else if (StringUtils.isNotEmpty(code) && user != null) { + //当前返回类型手机,用户名,email,工号 + result.setUserType(UserProperType.UserName); + result.setUser(user); + result.setSucess(true); + logger.info("SSO用户登录成功,进入苍穹系统"); } return result; } From fecc86a5f5b11f1444e1476bce5fc571c0d6498d Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Thu, 26 Jun 2025 14:11:40 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E6=96=B0oa=E5=BE=85=E5=8A=9E=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E5=88=B0=E5=BE=85=E5=8A=9E=E9=A1=B5=E9=9D=A2bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/eoss/SSOPluginLogin.java | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index 0302ffc..fe52102 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -50,10 +50,18 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { client = CLIENT_ID; secret = CLIENT_SECRET; } - if(queryUrl.contains("code")){ -// httpServletResponse.sendRedirect(ssourl); - - + String ssourl = ip + "/service/SGE-project-sctz-master/pc/dist/login.html"; + //图标登录到首页 + if(!queryUrl.contains("yzjShareOpen.do")){ + try { + //重定向的统一认证的地址 获取授权码 + ssourl = String.format("%s/sso2/authCenter/authorize?client_id=%s&response_type=code&sessionKeep=true&authType=0&redirect_uri=%s", + ip, client, s); + logger.info(String.format("重定向地址→sendRedirect:%s", ssourl)); + httpServletResponse.sendRedirect(ssourl); + } catch (IOException e) { + throw new RuntimeException(e); + } }else{ queryUrl = Base64.getEncoder().encodeToString(queryUrl.getBytes(StandardCharsets.UTF_8)); // String skIp = httpServletRequest.getRemo @@ -62,13 +70,12 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { String redirect = skUrl+"index.html?param="+queryUrl; //认证中心的登录地址 logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); - String ssourl = ip + "/service/SGE-project-sctz-master/pc/dist/login.html"; try { if (httpServletRequest.getRequestURI().contains("/auth/logout.do")) { String userName = UserServiceHelper.getCurrentUser("name").getString("name"); DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); - String userKey = "user_sessionId_" + userName; // 构造一个唯一的键 + String userKey = "user_sessionId_" + userName; // 构造存储sessionId的键 String sessionId = cache.get(userKey); if (sessionId != null) { AuthService.logout(ip, sessionId); @@ -104,33 +111,34 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { client = CLIENT_ID; secret = CLIENT_SECRET; } - //返回的认证结果 UserAuthResult result = new UserAuthResult(); //获取返回的授权码 String code = httpServletRequest.getParameter("code"); logger.info(String.format("getTrdSSOAuth→授权码code:%s", code)); - //获取返回的 sessionId - String sessionId = httpServletRequest.getParameter("sessionId"); - logger.info(String.format("getTrdSSOAuth→sessionId:%s", sessionId)); //调用EOSS获取token接口 String access_token = AuthService.accessToken(code, ip, client, secret); logger.info(String.format("accessToken返回数据:%s", access_token)); //调用EOSS获取用户信息接口 String user = AuthService.getUserInfo(access_token, ip, client, secret); logger.info(String.format("getUserInfo返回数据:%s", user)); - String userKey = "user_sessionId_" + user; - DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); - cache.put(userKey, sessionId); String param = httpServletRequest.getParameter("param"); //解码 if(param!=null){ byte[] decodedBytes = Base64.getDecoder().decode(param); String paramString = new String(decodedBytes, StandardCharsets.UTF_8); try { - //二次重定向到待办页面,并且去除EOSS返回的sessionId + //获取返回的 sessionId + String sessionId = httpServletRequest.getParameter("sessionId"); + logger.info(String.format("getTrdSSOAuth→sessionId:%s", sessionId)); + String userKey = "user_sessionId_" + user; + //存储sessionId用于退出系统 + DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); + cache.put(userKey, sessionId); + //二次重定向到待办页面,并且不携带EOSS返回的sessionId httpServletResponse.sendRedirect(httpServletRequest.getRequestURI()+"?"+paramString+"&code="+code); } catch (IOException e) { + logger.error("二次重定向到待办页面异常!"+e.getMessage()); throw new RuntimeException(e); } result.setSucess(false); From 554be3d22e4f69fb9f3e63779005d7bbdc537d9c Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Thu, 26 Jun 2025 22:42:13 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E6=96=B0oa=E5=BE=85=E5=8A=9E=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E5=88=B0=E5=BE=85=E5=8A=9E=E9=A1=B5=E9=9D=A2bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index fe52102..b6d8e00 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -28,6 +28,8 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { private final String CLIENT_ID2 = System.getProperty("scnyfz-clientKey"); private final String CLIENT_SECRET2 = System.getProperty("scnyfz-scict"); private final String EOSS_IP2 = System.getProperty("scnyfz-ip2"); + private final String skIP = System.getProperty("backlog-ip"); + /** * 方法实现用户没有登录的时候跳转认证中心的登录地址 @@ -40,7 +42,6 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { String secret; String queryUrl = httpServletRequest.getQueryString(); - if (queryUrl.contains("isNew")) { ip = EOSS_IP2; client = CLIENT_ID2; @@ -66,8 +67,9 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { queryUrl = Base64.getEncoder().encodeToString(queryUrl.getBytes(StandardCharsets.UTF_8)); // String skIp = httpServletRequest.getRemo String skUrl = RevProxyUtil.getURLContextPath(httpServletRequest); - logger.info("获取地址:"+skUrl); - String redirect = skUrl+"index.html?param="+queryUrl; + logger.info("getURLContextPath:"+skUrl); + String redirect = skIP+"/index.html?param="+queryUrl; + logger.info("skip:"+skUrl); //认证中心的登录地址 logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); From 22da7ad78c25cb91cb72712f2c598530d61397b2 Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Thu, 26 Jun 2025 23:26:23 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E6=96=B0oa=E5=BE=85=E5=8A=9E=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E5=88=B0=E5=BE=85=E5=8A=9E=E9=A1=B5=E9=9D=A2bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/eoss/SSOPluginLogin.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index b6d8e00..5f0754d 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -18,6 +18,7 @@ import java.util.Base64; /** + * **/ public class SSOPluginLogin implements ThirdSSOAuthHandler { private final static Log logger = LogFactory.getLog(SSOPluginLogin.class); @@ -53,7 +54,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { } String ssourl = ip + "/service/SGE-project-sctz-master/pc/dist/login.html"; //图标登录到首页 - if(!queryUrl.contains("yzjShareOpen.do")){ + if (!queryUrl.contains("yzjShareOpen.do")) { try { //重定向的统一认证的地址 获取授权码 ssourl = String.format("%s/sso2/authCenter/authorize?client_id=%s&response_type=code&sessionKeep=true&authType=0&redirect_uri=%s", @@ -63,13 +64,13 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { } catch (IOException e) { throw new RuntimeException(e); } - }else{ + } else { queryUrl = Base64.getEncoder().encodeToString(queryUrl.getBytes(StandardCharsets.UTF_8)); // String skIp = httpServletRequest.getRemo String skUrl = RevProxyUtil.getURLContextPath(httpServletRequest); - logger.info("getURLContextPath:"+skUrl); - String redirect = skIP+"/index.html?param="+queryUrl; - logger.info("skip:"+skUrl); + logger.info("getURLContextPath:" + skUrl); + String redirect = skIP + "/index.html?param=" + queryUrl; + logger.info("skip:" + skUrl); //认证中心的登录地址 logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); @@ -118,6 +119,11 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { //获取返回的授权码 String code = httpServletRequest.getParameter("code"); logger.info(String.format("getTrdSSOAuth→授权码code:%s", code)); + if (StringUtils.isEmpty(code)) { + logger.error("getTrdSSOAuth→授权码code为空"); + result.setSucess(false); + return result; + } //调用EOSS获取token接口 String access_token = AuthService.accessToken(code, ip, client, secret); logger.info(String.format("accessToken返回数据:%s", access_token)); @@ -126,7 +132,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { logger.info(String.format("getUserInfo返回数据:%s", user)); String param = httpServletRequest.getParameter("param"); //解码 - if(param!=null){ + if (param != null) { byte[] decodedBytes = Base64.getDecoder().decode(param); String paramString = new String(decodedBytes, StandardCharsets.UTF_8); try { @@ -138,9 +144,9 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); cache.put(userKey, sessionId); //二次重定向到待办页面,并且不携带EOSS返回的sessionId - httpServletResponse.sendRedirect(httpServletRequest.getRequestURI()+"?"+paramString+"&code="+code); + httpServletResponse.sendRedirect(httpServletRequest.getRequestURI() + "?" + paramString + "&code=" + code); } catch (IOException e) { - logger.error("二次重定向到待办页面异常!"+e.getMessage()); + logger.error("二次重定向到待办页面异常!" + e.getMessage()); throw new RuntimeException(e); } result.setSucess(false); @@ -148,11 +154,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { } //二次重定向进入 result.setUserType(UserProperType.UserName); - if (StringUtils.isEmpty(code)) { - logger.error("getTrdSSOAuth→授权码code为空"); - result.setSucess(false); - return result; - } else if (StringUtils.isNotEmpty(code) && user != null) { + if (StringUtils.isNotEmpty(code) && user != null) { //当前返回类型手机,用户名,email,工号 result.setUserType(UserProperType.UserName); result.setUser(user);