| | |
| | | //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) { |