[英]Spring InitBinder
我在Spring MVC中设置initBinder遇到麻烦。 我有一个ModelAttribute,其中有一个有时会显示的字段。
public class Model {
private String strVal;
private int intVal;
private boolean boolVal; // Only shows in certain situations
}
如何正确设置此initBinder? 这就是我所拥有的,但是每当我修改发布数据时,无论我说什么都不允许,我都可以修改这个boolVal。 我以为我的麻烦是我无法接受想要的捷径。
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setIgnoreUnknownFields(true);
if (binder.objectName() == MODEL) {
binder.setAllowedFields("*");
if (!somePermissionChecks()) {
binder.setDisallowedFields("boolVal");
}
}
}
权限检查返回false,因此调用了setDisallowedFields。 问题在于,通过添加输入或更改另一个字段的名称或将其附加到POST数据,我仍然可以在UI上伪造该值。
有没有一种快速的方法,而不必手工列出所有属性?
绑定器初始化期间权限检查是否失败? 您是否尝试过没有binder.setAllowedFields("*");
声明?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.