javascript - 如何更改过滤器中的 servletRequest 内容长度

标签 javascript jquery ajax servlets encryption

我正在尝试加密从我的 Web 应用程序发送到我的服务的 POST 正文请求。

加密是在过滤器中完成的。

我面临内容长度的问题,内容长度是在 JavaScript 中为 post 调用设置的,并且在加密完成后在过滤器中设置,内容长度发生变化(长度增加)以及何时发布数据被传输到服务,数据被 chop 为最初(加密前)数据的长度,这使得数据不可用。

加密代码:

public void jsonEncrypt(String passPhrase, int iterationCount, int keySize, String salt, String initializationVector) throws IOException { 
    String json = new String(body, StandardCharsets.UTF_8); 
    AesUtil aesUtil = new AesUtil(keySize, iterationCount); 

    encryptJsonText = aesUtil.encrypt(salt, initializationVector, passPhrase, json); 
    byte[] b = encryptJsonText.getBytes(); 
    body = b; 
}

最佳答案

我能够解决覆盖 getContentLength() 方法以返回新长度的问题。通过此,我能够加密请求正文并将其发送到我的服务,并在其中解密 body 并使用它。

关于javascript - 如何更改过滤器中的 servletRequest 内容长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36700229/

相关文章:

javascript - 为什么 Angular $scope 不删除旧值?

javascript - 如何动态循环到 UL 和 LI 元素中?

javascript - 返回状态码并在客户端获取消息或直接向客户端发送错误消息

javascript - 为什么我的 .data() 函数返回 [ 而不是数组的第一个值?

tomcat的ajax请求问题

javascript - 一个请求中包含 JSON 和 HTML?

javascript - 加载页面并在单个书签中应用 javascript

javascript - 取消设置 ajax 中通过 post 传递的变量

javascript - 如何使用 Airbnb JavaScript 样式指南设置 Prettier

javascript - 开放(聚焦) "select"元素中非常奇怪的 Chrome 行为