From 298f36dcf050c961af9ea9d406d6555f419e8121 Mon Sep 17 00:00:00 2001 From: Lemon Date: Sat, 27 May 2023 11:55:45 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=81=94=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/SpringBootTestController.java | 42 ++++++++++++++++++- .../service/impl/LianLianServiceImpl.java | 5 ++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index e03679bb7..708d5adb6 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -1,4 +1,5 @@ import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.fasterxml.jackson.core.JsonProcessingException; import com.google.common.collect.ImmutableMap; @@ -181,7 +182,7 @@ public class SpringBootTestController { } @Test - public void testLianLian(){ + public void testLianLian() throws UnsupportedEncodingException { // 获取令牌 // LianLianGetTokenDTO dto = new LianLianGetTokenDTO(); // dto.setOperatorId("MA1JLFUU8"); @@ -189,6 +190,45 @@ public class SpringBootTestController { String token = lianLianService.getToken("", "MA1JLFUU8", "fGwLsxW1HdzLw7jp"); System.out.println("token:" + token); + String operatorId = "I4XLPQPV"; + String operatorSecret = "3DSBTWHVIC6KVCKI"; + // 请求data + Map data = new HashMap<>(); + data.put("OperatorID", operatorId); + data.put("OperatorSecret", operatorSecret); + String dataJson = JSONUtil.toJsonStr(data); + + // 加密 + byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes("UTF-8"), + operatorSecret.getBytes(), operatorSecret.getBytes()); + String strData = Encodes.encodeBase64(encryptText); + String timeStamp = DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date()); + Map request = new LinkedHashMap<>(); + request.put("OperatorID", operatorId); + request.put("Data", strData); + request.put("TimeStamp", timeStamp); + request.put("Seq", "0001"); + + // 生成签名 + String sig = GBSignUtils.sign(request, operatorSecret); + request.put("Sig", sig); + + QueryTokenDTO dto = new QueryTokenDTO(); + dto.setOperatorID(operatorId); + dto.setData(strData); + dto.setTimeStamp(timeStamp); + dto.setSeq("0001"); + dto.setSig(sig); + Map map = lianLianService.generateToken(dto); + String data1 = map.get("Data"); + // 解密data + byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(data1), + operatorSecret.getBytes(), operatorSecret.getBytes()); + String dataStr = new String(plainText, "UTF-8"); + Map resultMap = (Map) JSON.parse(dataStr); + token = resultMap.get("AccessToken"); + System.out.println("解密后token:" + token); + // LianLianPushStationInfoDTO dto1 = LianLianPushStationInfoDTO.builder() // .OperatorID("MA1JLFUU8") diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java index cbd2b0cb6..c2ef5898f 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java @@ -44,6 +44,7 @@ import com.jsowell.thirdparty.lianlian.util.GBSignUtils; import com.jsowell.thirdparty.lianlian.util.HttpRequestUtil; import com.jsowell.thirdparty.lianlian.vo.*; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -198,6 +199,8 @@ public class LianLianServiceImpl implements LianLianService { } public static void main(String[] args) { + String s = RandomStringUtils.randomAlphanumeric(16).toUpperCase(Locale.ROOT); + System.out.println(s); } @@ -1265,7 +1268,7 @@ public class LianLianServiceImpl implements LianLianService { // 生成token返回 eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI0MjUwMTA3NjUiLCJpYXQiOjE2ODUwOTcxMTYsInN1YiI6IjEyMzEyMzEyMzEyM2FhYWEiLCJleHAiOjY4NjkwOTcxMTZ9.NyxOUIZmgsqtfex7oiMRR2LaWePTA56WHVMXIkWWt2w long ttlMillis = 60 * 60 * 24 * 1000; String token = JWTUtils.createToken(operatorID, operatorSecret, ttlMillis); - System.out.println(token); + System.out.println("生成的token:" + token); // 组装返回参数 AccessTokenVO vo = new AccessTokenVO();