From 3ccbf4bd6178fa7101927b59bf1f93d19b020d3f Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Wed, 25 Oct 2023 09:19:45 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E9=87=91=E5=B1=B1WPS=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/client/UnicomOAuthClient.java | 18 +++++++++++++++++ .../extend/wps/controller/WpsController.java | 20 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/feign/client/UnicomOAuthClient.java diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/feign/client/UnicomOAuthClient.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/feign/client/UnicomOAuthClient.java new file mode 100644 index 0000000..09a9032 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/feign/client/UnicomOAuthClient.java @@ -0,0 +1,18 @@ +package com.chinaunicom.mall.ebtp.extend.feign.client; + +import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.SecurityEntity; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 认证中心数据服务客户端 + * + * @author Ajaxfan + */ +@FeignClient(value = "${user.auth.resource.serviceId:mall-auth}") +public interface UnicomOAuthClient { + + @GetMapping("oauth/check_token") + SecurityEntity get(@RequestParam("token") String token); +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java index a86cf21..f3497ed 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java @@ -1,10 +1,12 @@ package com.chinaunicom.mall.ebtp.extend.wps.controller; +import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.SecurityEntity; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.log.OperationLogDetail; import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogBusinessModule; import com.chinaunicom.mall.ebtp.common.log.enums.EbtpLogType; +import com.chinaunicom.mall.ebtp.extend.feign.client.UnicomOAuthClient; import com.chinaunicom.mall.ebtp.extend.wps.entity.KingSoftFileSaveVo; import com.chinaunicom.mall.ebtp.extend.wps.service.WpsService; import com.chinaunicom.mall.ebtp.extend.wps.vo.WpsClientInVo; @@ -34,6 +36,9 @@ public class WpsController { @Resource private WpsService wpsService; + @Resource + private UnicomOAuthClient unicomOAuthClient; + /** * 获得编辑或查看链接 * @@ -122,4 +127,19 @@ public class WpsController { public Object saveKSFile(@RequestBody KingSoftFileSaveVo vo) { return this.wpsService.saveKSFile(vo); } + + /** + * token + * 编辑 permission=write + * 预览 permission=read + * @param + * @return + */ + @ApiOperation("token") + @GetMapping("/kingSoft/getToken") + public BaseResponse getToken(@RequestParam("token") String token) { + SecurityEntity s = unicomOAuthClient.get(token); + log.info("SecurityEntity:"+s); + return BaseResponse.success(s); + } } From d2502e03f81ab8cd8fd83044711569a859f5e9ab Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Wed, 25 Oct 2023 09:31:23 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E9=87=91=E5=B1=B1WPS=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java index 2a59c01..22da6f8 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java @@ -20,6 +20,7 @@ import com.chinaunicom.mall.ebtp.common.log.service.OperationLogService; import com.chinaunicom.mall.ebtp.common.uniBss.constant.UniBssConstant; import com.chinaunicom.mall.ebtp.common.uniBss.entity.UniBssAttached; import com.chinaunicom.mall.ebtp.extend.crypconfigure.util.SslUtil; +import com.chinaunicom.mall.ebtp.extend.feign.client.UnicomOAuthClient; import com.chinaunicom.mall.ebtp.extend.shortmessage.utils.RSA; import com.chinaunicom.mall.ebtp.extend.uniBss.UniBssUtil; import com.chinaunicom.mall.ebtp.extend.wps.entity.KingSoftFileSaveVo; @@ -73,6 +74,8 @@ public class WpsServiceImpl implements WpsService { @Autowired private AttachmentClient attachmentClient; + @Resource + private UnicomOAuthClient unicomOAuthClient; @Value("${mconfig.wps.bssAppId}") private String bss_app_id; @@ -576,7 +579,7 @@ public class WpsServiceImpl implements WpsService { CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌已失效-",true); } - SecurityEntity securityEntity = client.get(token); + SecurityEntity securityEntity = unicomOAuthClient.get(token); CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",securityEntity.getUserid()==null||"".equals(securityEntity.getUserid())); return fileId; From 6b29045184ea8ca38147b41d8aa57860b42dba6d Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Wed, 25 Oct 2023 10:17:24 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E9=87=91=E5=B1=B1WPS=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wps/service/impl/WpsServiceImpl.java | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java index 22da6f8..5031ad9 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java @@ -45,6 +45,7 @@ import java.io.*; import java.math.BigInteger; import java.net.HttpURLConnection; import java.net.URL; +import java.net.URLDecoder; import java.net.URLEncoder; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -565,7 +566,7 @@ public class WpsServiceImpl implements WpsService { CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",!o_key.substring(0,md.length()).equals(md)); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); - long newDateLong = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); + long newDateLong = new Date().getTime(); long inDateLong = 0; try { Date inDate = format.parse(time); @@ -575,6 +576,8 @@ public class WpsServiceImpl implements WpsService { } //time_limit = "120000"; + log.info("newDateLong:"+newDateLong); + log.info("inDateLong:"+inDateLong); if(newDateLong-inDateLong>Long.valueOf(kswTimeLimit)){// CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌已失效-",true); } @@ -645,23 +648,37 @@ public class WpsServiceImpl implements WpsService { } public static void main(String args[]) throws UnsupportedEncodingException { -// WpsServiceImpl wpsService = new WpsServiceImpl(); + WpsServiceImpl wpsService = new WpsServiceImpl(); // wpsService.kswpublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtUm+H78uT39TOsgS5XdbIuC0BRLiktqbuI3F9VFbPWDcX15Ptb2u2yTCSOB0Gl+yI+hqpClyV9nyjnu0LgoWpsIDZSLVLdrltYKz9N8jwXKhybomT2EuYU7hzWT1Ea4fkIBfYMCl+BQYSkXD6eqObg4mq2/wUFUVX/+/vjsMShwIDAQAB"; -// wpsService.kswprivateKey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAK1Sb4fvy5Pf1M6yBLld1si4LQFEuKS2pu4jcX1UVs9YNxfXk+1va7bJMJI4HQaX7Ij6GqkKXJX2fKOe7QuChamwgNlItUt2uW1grP03yPBcqHJuiZPYS5hTuHNZPURrh+QgF9gwKX4FBhKRcPp6o5uDiarb/BQVRVf/7++OwxKHAgMBAAECgYA77iY8hdEJx7qo4es6QVVUQELnjmCeK74a18yVPoVp2qHqL5Op5P4EzRprZNW8gum6D2kKjFepTvqYBQsIENCwY3a6iKQf+8kwJ/GhVP+7uT3bnxdQFNXA99ujVu7Q2nFQZYAYJWiuMOQKGWrVJperlli0Ip3htCNmtTaviVfAcQJBANTAbX210K1zWe40nSxuuc6ONBqK/YF5hkqKpWB/XzfgFgQ4tPOfvWnnp0pt9rWUV9PzO6NYr2ya60yu2Y6aE+kCQQDQjhfdIid458UOYbjAixY5ONZOcswFQi77pk6MB5Cp8aHn8gHtapDnXt5DiHhqzJCya31FYYoqGtp/4fIntRzvAkA1N2Dr5fOpv0XKcLyz5YpyoV1lGkko/sXZlW6igZnGtzWqnqicm+NcP0a4NmNUriN978SGKmPO7b1XtBDVO7MpAkA/Q1sp0Tp4CpZUDoCkp4xOP1eC5H/O+IyX+ZLKF2Fiq9GZMmgzRKhABx8VDUi53OPnu4N8kGIA87RkJn32XZIxAkAtL+skd+5wkL71VZVnZafLIjWlJM/RKxqyaLbF8irT2sq2+ae8A19hfXj3zT7CeLn5xjKP1/cuGakeOBL8cNaw"; + wpsService.kswprivateKey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAK1Sb4fvy5Pf1M6yBLld1si4LQFEuKS2pu4jcX1UVs9YNxfXk+1va7bJMJI4HQaX7Ij6GqkKXJX2fKOe7QuChamwgNlItUt2uW1grP03yPBcqHJuiZPYS5hTuHNZPURrh+QgF9gwKX4FBhKRcPp6o5uDiarb/BQVRVf/7++OwxKHAgMBAAECgYA77iY8hdEJx7qo4es6QVVUQELnjmCeK74a18yVPoVp2qHqL5Op5P4EzRprZNW8gum6D2kKjFepTvqYBQsIENCwY3a6iKQf+8kwJ/GhVP+7uT3bnxdQFNXA99ujVu7Q2nFQZYAYJWiuMOQKGWrVJperlli0Ip3htCNmtTaviVfAcQJBANTAbX210K1zWe40nSxuuc6ONBqK/YF5hkqKpWB/XzfgFgQ4tPOfvWnnp0pt9rWUV9PzO6NYr2ya60yu2Y6aE+kCQQDQjhfdIid458UOYbjAixY5ONZOcswFQi77pk6MB5Cp8aHn8gHtapDnXt5DiHhqzJCya31FYYoqGtp/4fIntRzvAkA1N2Dr5fOpv0XKcLyz5YpyoV1lGkko/sXZlW6igZnGtzWqnqicm+NcP0a4NmNUriN978SGKmPO7b1XtBDVO7MpAkA/Q1sp0Tp4CpZUDoCkp4xOP1eC5H/O+IyX+ZLKF2Fiq9GZMmgzRKhABx8VDUi53OPnu4N8kGIA87RkJn32XZIxAkAtL+skd+5wkL71VZVnZafLIjWlJM/RKxqyaLbF8irT2sq2+ae8A19hfXj3zT7CeLn5xjKP1/cuGakeOBL8cNaw"; // wpsService.appName = "biz-service-ebtp-extend"; // String key = wpsService.getDownloadEncrypt("1679764839191080961","3a1f5aae-3cd2-4599-87b0-712e40625c7c"); -// String val = RSA.decrypt(key,wpsService.kswprivateKey); -// System.out.println("val:"+val); -// String[] value = val.split("_"); -// String fileId = value[0]; -// String token = value[1]; -// String time = value[2]; -// String md = value[3]; -// System.out.println("md:"+md); -// String o_key = MdConstants.getSha256(time+fileId+wpsService.appName+token); -// System.out.println("o_key:"+o_key); -// System.out.println("o_key:"+o_key.substring(0,md.length())); + String key = URLDecoder.decode( "FkvDifsfK8frde0ywRzdPMmOlR4%2FO8C4VORaw%2FwshgBt%2B49Z2%2B0al4KwyQ97Js8Yh24%2ByMT%2Fln4Aqx%2BVZNkGqOh0OxP1H3qj%2BP%2BlP1Sybvs5I0q%2BtFpW9nMQcGAsenFNLgcFtUtsQAJG4ALG4cH34TnDnSjuivM9tmA1Gt%2BzsJU%3D","utf-8"); + String val = RSA.decrypt(key,wpsService.kswprivateKey); + System.out.println("val:"+val); + String[] value = val.split("_"); + String fileId = value[0]; + String token = value[1]; + String time = value[2]; + String md = value[3]; + System.out.println("md:"+md); + String o_key = MdConstants.getSha256(time+fileId+wpsService.appName+token); + System.out.println("o_key:"+o_key); + System.out.println("o_key:"+o_key.substring(0,md.length())); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); + long newDateLong = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); + System.out.println("newDateLong:"+newDateLong); - System.out.println(URLEncoder.encode("hVLFkQhQkXI8w4RFE25zvCP9TKRZwT8Dqhxmi/PgDalGayE5SIjtyFBRpu6wuEqr7HvAIHm2Kc8+ahIUF7l8sc1PHYeCuEmgYEwzeosl1pT1yDyQ+KV6Q8REiufarAbZ1W9LEx70SBrtTXPKnEPi82njSv+CVrYqZCf6XZ/BINU=","utf-8")); + long inDateLong = 0; + try { + Date inDate = format.parse(time); + inDateLong = inDate.getTime(); + System.out.println("inDateLong:"+inDateLong); + System.out.println(newDateLong-inDateLong); + }catch (Exception e){ + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌时间戳错误",true); + } + + //System.out.println(URLEncoder.encode("hVLFkQhQkXI8w4RFE25zvCP9TKRZwT8Dqhxmi/PgDalGayE5SIjtyFBRpu6wuEqr7HvAIHm2Kc8+ahIUF7l8sc1PHYeCuEmgYEwzeosl1pT1yDyQ+KV6Q8REiufarAbZ1W9LEx70SBrtTXPKnEPi82njSv+CVrYqZCf6XZ/BINU=","utf-8")); } } From 457685823d845af58e8045cd9fafdc8d655b65fd Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Wed, 25 Oct 2023 10:20:36 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E9=87=91=E5=B1=B1WPS=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java index 5031ad9..2c6b98a 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java @@ -119,9 +119,6 @@ public class WpsServiceImpl implements WpsService { @Value("${KingSoftWps.kswpsurl}") private String kswpsurl; - @Autowired - private UnifastOAuthClient client; - @Resource private RedisTemplate redisTemplate; @@ -566,7 +563,7 @@ public class WpsServiceImpl implements WpsService { CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",!o_key.substring(0,md.length()).equals(md)); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); - long newDateLong = new Date().getTime(); + long newDateLong = System.currentTimeMillis(); long inDateLong = 0; try { Date inDate = format.parse(time); From b2b5807906b07520e8ed901ea85d34c5d86d702c Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Wed, 25 Oct 2023 10:32:46 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E9=87=91=E5=B1=B1WPS=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java index 2c6b98a..9b3bf9d 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java @@ -580,7 +580,8 @@ public class WpsServiceImpl implements WpsService { } SecurityEntity securityEntity = unicomOAuthClient.get(token); - CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",securityEntity.getUserid()==null||"".equals(securityEntity.getUserid())); + log.info("securityEntity:"+securityEntity); + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",securityEntity.getStaffId()==null||"".equals(securityEntity.getStaffId())); return fileId; } From 2b6874705dd0f6b542547ad75db716b69a6f2972 Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Wed, 25 Oct 2023 10:48:10 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E9=87=91=E5=B1=B1WPS=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/ebtp/extend/wps/controller/WpsController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java index f3497ed..876162b 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/controller/WpsController.java @@ -114,8 +114,8 @@ public class WpsController { */ @ApiOperation("(金山)沃文档回调-查询文档") @GetMapping("/kingSoft/file") - public BaseResponse getKSFile(@RequestParam("key") String key) { - return BaseResponse.success(this.wpsService.getKSWpsFile(key)); + public byte[] getKSFile(@RequestParam("key") String key) { + return this.wpsService.getKSWpsFile(key); } /** * 沃文档回调-保存文档 From a0916304bac9fe1f30dae94e896b7ef14f7dbae0 Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Wed, 25 Oct 2023 13:55:49 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E9=87=91=E5=B1=B1WPS=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java index 9b3bf9d..7fc9a13 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java @@ -499,6 +499,7 @@ public class WpsServiceImpl implements WpsService { public String getKSWpsUrl(WpsClientInVo in){ KingSoftWpsVo vo = new KingSoftWpsVo(); + vo.setSrcId(1); vo.setStaffCode("ebtp"); vo.setFileKey(in.getFileId()); String fileName = in.getFileName();