gpt4 book ai didi

java - Spring初始化绑定(bind)器

转载 作者:行者123 更新时间:2023-12-01 05:39:25 26 4
gpt4 key购买 nike

我在 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 上伪造此值。

有没有一种快速的方法可以做到这一点,而不必手动列出所有属性?

最佳答案

绑定(bind)器初始化期间权限检查是否失败?您是否尝试过不使用 binder.setAllowedFields("*"); 语句?

关于java - Spring初始化绑定(bind)器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7521777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com