Commit 073ad8798ca7ddef9656eccde5852e5da5426a71

Authored by YunaiV
1 parent 1e762143

1446 fix: 修复API响应加密时添加加密 header 标识不生效的问题

yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/encrypt/core/filter/ApiEncryptResponseWrapper.java
@@ -42,16 +42,15 @@ public class ApiEncryptResponseWrapper extends HttpServletResponseWrapper { @@ -42,16 +42,15 @@ public class ApiEncryptResponseWrapper extends HttpServletResponseWrapper {
42 this.flushBuffer(); 42 this.flushBuffer();
43 byte[] body = byteArrayOutputStream.toByteArray(); 43 byte[] body = byteArrayOutputStream.toByteArray();
44 44
45 - // 2. 加密 body  
46 - String encryptedBody = symmetricEncryptor != null ? symmetricEncryptor.encryptBase64(body)  
47 - : asymmetricEncryptor.encryptBase64(body, KeyType.PublicKey);  
48 -  
49 - // 3. 添加加密 header 标识(设置header要放在response的write之前) 45 + // 2. 添加加密 header 标识
50 this.addHeader(properties.getHeader(), "true"); 46 this.addHeader(properties.getHeader(), "true");
51 // 特殊:特殊:https://juejin.cn/post/6867327674675625992 47 // 特殊:特殊:https://juejin.cn/post/6867327674675625992
52 this.addHeader("Access-Control-Expose-Headers", properties.getHeader()); 48 this.addHeader("Access-Control-Expose-Headers", properties.getHeader());
53 49
54 - // 4. 输出加密后的 body 50 + // 3.1 加密 body
  51 + String encryptedBody = symmetricEncryptor != null ? symmetricEncryptor.encryptBase64(body)
  52 + : asymmetricEncryptor.encryptBase64(body, KeyType.PublicKey);
  53 + // 3.2 输出加密后的 body:(设置 header 要放在 response 的 write 之前)
55 response.getWriter().write(encryptedBody); 54 response.getWriter().write(encryptedBody);
56 } 55 }
57 56