|
|
@ -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; |
|
|
|
} |
|
|
|