Browse Source

重庆热线-修改加解密功能

dev
Cruyse 9 hours ago
parent
commit
7f21361ab4
1 changed files with 8 additions and 4 deletions
  1. +8
    -4
      ruoyi-auth/src/main/java/cc/mrbird/febs/auth/configure/DecryptThirdTokenFilter.java

+ 8
- 4
ruoyi-auth/src/main/java/cc/mrbird/febs/auth/configure/DecryptThirdTokenFilter.java View File

@ -81,8 +81,7 @@ public class DecryptThirdTokenFilter extends OncePerRequestFilter {
// 使用支持body缓存的请求包装器
HeaderMapRequestWrapper requestWrapper = new HeaderMapRequestWrapper(request);
String requestBody = requestWrapper.getRequestBody();
// log.info("=== 最初请求体信息 ===");
// log.info("Body: {}", requestBody);
log.info("=== 请求体信息 ===requestBody: {}", requestBody);
// 非第三方获取token直接放行
String isThird = request.getHeader(IS_THIRD);
// 判断是否第三方请求满足任一条件即可
@ -188,17 +187,21 @@ public class DecryptThirdTokenFilter extends OncePerRequestFilter {
String key = entry.getKey(); // 获取键"header""body"
String value = String.valueOf(entry.getValue()); // 获取对应值
transportRequest.getHeader().setCrc(key);
transportRequest.setBody(value);
tokenMap.put("token", value);
String tokenBody = gson.toJson(tokenMap);
transportRequest.setBody(encryptBody(tokenBody));
log.info("=== 返回验证token(未加密redis) ===token: {}", value);
}
} else {
String sourceType = "data_exchange_client";
String tokenValue = new String(Base64.encodeBase64URLSafe(DEFAULT_TOKEN_GENERATOR.generateKey()), US_ASCII);
String tokenValueBase64 = Base64.encodeBase64String((sourceType + "_" + tokenValue).getBytes(StandardCharsets.UTF_8));
tokenMap.put("token", encryptBody(tokenValueBase64));
log.info("=== 返回验证token(未加密mysql) ===token: {}", encryptBody(tokenValueBase64));
String tokenBody = gson.toJson(tokenMap);
String crc = calculateSM3(tokenBody);
String responseBody = encryptBody(tokenBody);
redisService.setCacheMapValue(user, crc, responseBody);
redisService.setCacheMapValue(user, crc, encryptBody(tokenValueBase64));
redisService.expire(user, 24 * 60 * 60);
transportRequest.getHeader().setCrc(crc);
transportRequest.setBody(responseBody);
@ -213,6 +216,7 @@ public class DecryptThirdTokenFilter extends OncePerRequestFilter {
transportRequest.getHeader().setMessage("成功");
// 替换直接写response的方式
String transportResponse = gson.toJson(transportRequest);
log.info("=== 响应体信息 ===transportResponse: {}", transportResponse);
renderString(response, HttpServletResponse.SC_OK, transportResponse);
return;
}

Loading…
Cancel
Save