From d381770738b4862608620faa6fa78c7cea60b920 Mon Sep 17 00:00:00 2001 From: guyue <1721849008@qq.com> Date: 星期四, 17 七月 2025 23:58:38 +0800 Subject: [PATCH] jacksion版本更换 --- src/main/java/com/linghu/controller/AuthController.java | 47 +++++++++++++++++++++-- pom.xml | 14 +++--- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index f4d69f8..a3719a4 100644 --- a/pom.xml +++ b/pom.xml @@ -90,18 +90,18 @@ <!-- </dependency>--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - <version>2.13.4</version> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.datatype</groupId> - <artifactId>jackson-datatype-jsr310</artifactId> + <artifactId>jackson-core</artifactId> <version>2.13.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> - <version>2.15.2</version> + <version>2.13.4.2</version> <!-- 使用最新的补丁版本 --> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.datatype</groupId> + <artifactId>jackson-datatype-jsr310</artifactId> + <version>2.13.4</version> </dependency> <dependency> diff --git a/src/main/java/com/linghu/controller/AuthController.java b/src/main/java/com/linghu/controller/AuthController.java index 06e9f4a..64cea8b 100644 --- a/src/main/java/com/linghu/controller/AuthController.java +++ b/src/main/java/com/linghu/controller/AuthController.java @@ -55,26 +55,63 @@ //open-crypt解析token @GetMapping("/parseToken") @ApiOperation(value = "解析token") - public ResponseEntity<?> parseToken(@RequestParam String token) throws JsonProcessingException { - if (token == null || "".equals(token)){ + public ResponseEntity<?> parseToken(@RequestParam String token) { + if (token == null || token.isEmpty()) { return ResponseEntity.ok("token为空"); } + try { + // 解密token OpenCryptUtil openCryptUtil = new OpenCryptUtil(); String decrypt = openCryptUtil.decrypt(token); - // 使用 ObjectMapper 反序列化,避免手动处理转义字符 + // 处理可能的JSON格式问题 + String cleanedJson = cleanJsonString(decrypt); + + // 使用ObjectMapper解析JSON ObjectMapper objectMapper = new ObjectMapper(); - JsonNode root = objectMapper.readTree(decrypt); + JsonNode root = objectMapper.readTree(cleanedJson); + + // 提取所需字段 String name = root.get("name").asText(); return ResponseEntity.ok(name); + } catch (JsonProcessingException e) { + // 处理JSON解析异常 + return ResponseEntity.badRequest().body("JSON解析失败: " + e.getMessage()); } catch (Exception e) { - // 捕获所有异常,避免500错误 + // 处理其他异常 return ResponseEntity.badRequest().body("解析失败: " + e.getMessage()); } } + /** + * 清理JSON字符串,处理可能的格式问题 + * @param jsonString 原始JSON字符串 + * @return 清理后的JSON字符串 + */ + private String cleanJsonString(String jsonString) { + if (jsonString == null) { + return null; + } + + // 移除字符串开头和结尾可能存在的引号 + String result = jsonString.trim(); + if (result.startsWith("\"") && result.endsWith("\"") && result.length() > 1) { + result = result.substring(1, result.length() - 1); + } + + // 处理转义的引号 + result = result.replace("\\\"", "\""); + + // 处理换行符和其他转义字符 + result = result.replace("\\n", "\n") + .replace("\\r", "\r") + .replace("\\t", "\t"); + + return result; + } + @GetMapping("/getToken") @ApiOperation(value = "获取token") public ResponseEntity<?> getToken( String user) { -- Gitblit v1.7.1