在进行AJAX调用时,将HDIV State ID添加到POST请求体

时间:2015-09-09 13:49:40

标签: ajax hdiv

我们有一个基于Java的Web应用程序,我们使用HDIV作为我们的安全框架。从根本上说,我们的应用程序没有任何表单标签,而是我们有许多AJAX调用,它们带来JSON / HTML响应,用于构建页面中的卡片。

我们在处理敏感数据时正在使用POST请求。这些数据在POST请求正文中发送。为了符合安全性,我们不在hdiv:startPages中包含POST请求URL,如果我们这样做,我们在错误日志中得到HDIV相关的异常,说“HDIV_PARAMETER_NOT_EXISTS;”我们google了一下,发现它正在期待状态ID,并且从这些URL(https://github.com/hdiv/hdiv/wiki/Appendix-C:-Ajaxhttps://github.com/hdiv/spring-mvc-showcase/blob/master/src/main/webapp/WEB-INF/views/partialform.jsp)we中找出了如何为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请求,通常不建议将参数添加为查询字符串值。

如果有人可以在这方面指导我们,那就太棒了。

谢谢! 西

1 个答案:

答案 0 :(得分:0)

在HDIV的Github问题跟踪器中回答了同样的问题:https://github.com/hdiv/hdiv/issues/83 我希望它有所帮助!

Gotzon Illarramendi(HDIV队)