Java 有条件绑定Spring MVC字段

Java 有条件绑定Spring MVC字段,java,spring,spring-mvc,spring-mvc-initbinders,Java,Spring,Spring Mvc,Spring Mvc Initbinders,我想限制我的WebDataBinder允许的字段,以便普通用户无法创建附加到其他帐户的对象。使用@InitBinder,我可以很容易地做到这一点: @InitBinder void initBinder(WebDataBinder binder) { binder.disallowedFields = ['owner', 'createdAt'] } 但是,我希望管理员能够设置owner字段 我见过的唯一“声明性”解决方案是编写基于用户角色映射的重复控制器方法,并将不同的绑定规范附加到

我想限制我的
WebDataBinder
允许的字段,以便普通用户无法创建附加到其他帐户的对象。使用
@InitBinder
,我可以很容易地做到这一点:

@InitBinder
void initBinder(WebDataBinder binder) {
    binder.disallowedFields = ['owner', 'createdAt']
}
但是,我希望管理员能够设置
owner
字段


我见过的唯一“声明性”解决方案是编写基于用户角色映射的重复控制器方法,并将不同的绑定规范附加到不同的字段。是否有任何干净的方法可以动态指定哪些字段是允许的/不允许的/必需的?

如何与覆盖
isAllowed()的
WebDataBinder
的自定义子类组合
?@DirkLachowski该方法具有非常大的侵入性,直接在控制器中手动实现检查逻辑就不会那么脆弱了-/那么,也许这是在春季jira中提出特性请求的好时机。现在帮不上忙了,但谁知道呢……我甚至不知道该怎么说。嗯,也许我会ping推特上常见的疑点。想一想,在xml中保留每个表单bean信息的角色和不允许的字段(或编写自定义注释)。编写一个mvc拦截器,从xml中定义的角色的不允许字段中删除值?