我们有一个基于 Java 的 Web 应用程序,我们使用 HDIV 作为我们的安全框架。从根本上说,我们的应用程序没有任何表单标签,而是有许多 AJAX 调用,它们带来 JSON/HTML 响应,页面中的卡片是用这些响应构建的。
我们在处理敏感数据时使用 POST 请求。这些数据在 POST 请求正文中发送。为了符合安全要求,我们不会在 hdiv:startPages 中包含 POST 请求 URL,如果这样做,我们会在错误日志中收到与 HDIV 相关的异常,即“HDIV_PARAMETER_NOT_EXISTS;” 我们四处搜索,发现它需要状态 ID 和这些 URL(https://github.com/hdiv/hdiv/wiki/Appendix-C:-Ajax和https://github.com/hdiv/spring- mvc-showcase/blob/master/src/main/webapp/WEB-INF/views/partialform.jsp) 我们弄清楚了如何为 AJAX 端点添加 HDIV 状态 ID。
但这里的问题是,如果生成状态 ID 并将其作为查询参数附加到 AJAX 结束 URL,那么 HDIV 不会抛出任何异常,因为它从结束 URL 中识别状态 ID 参数。另一方面,如果我们尝试在请求正文中添加状态 ID,则会引发异常,指出“HDIV_PARAMETER_NOT_EXISTS;”。
恰恰,
我们不应该在 hdiv:startPages 中包含 POST 请求 AJAX 端点。为此,我们应该将状态 ID 作为 URL 的一部分附加该状态 ID 应该在 POST 请求正文中,而不是作为 URL 中的查询参数。当状态 ID 在请求正文中时会引发 HDIV 异常,并且仅当它可用作端点中的查询参数时才有效。对于 POST 请求,通常不建议将参数添加为查询字符串值。
如果有人能在这方面指导我们,那就太好了。
谢谢!!!赛