Struts Synchronizer Token

时间:2009-09-25 01:55:59

标签: java security struts token

如果我在struts应用程序中实现Synchronizer Token,我是否需要编辑所有表单以为令牌添加某种标记,还是由struts自动完成?

1 个答案:

答案 0 :(得分:1)

操作的saveToken()方法会生成一个令牌并将其置于会话范围内,然后html:form标记会自动将令牌添加到您的页面中。

以下是html:form自定义代码处理程序的代码段:

String token = (String) session.getAttribute(Globals.TRANSACTION_TOKEN_KEY);
if (token != null) {
  results.append("<input type=\"hidden\" name=\"");
  results.append(Constants.TOKEN_KEY);
  results.append("\" value=\"");
  results.append(token);
  if (this.isXhtml()) {
      results.append("\" />");
  } else {
     results.append("\">");
  }
}

因此,如果您使用Struts html:form标签,则无需执行任何操作,Struts将负责添加字段。如果您使用经典HTML表单标记,则必须自己添加字段。