我正在使用Spring安全性开发Spring MVC webapp。所以每个经过身份验证的用户都有一个指定的角色基于用户角色的实体属性访问
基于这个ROLE,用户只能修改实体属性的一个子集。
现在我试图通过在视图中使用弹簧安全标签来实现此目的,并根据记录用户的角色映射不可修改的字段与输入类型隐藏。但我认为它很快就会变成一场噩梦!我可以采取以保持事情有什么其他办法
<sec:authorize access="hasRole('ROLE_ADMIN')">
Value1: <input type="text" name="value1" value="${entity.value1}" />
Value2: <input type="text" name="value2" value="${entity.value2}" />
</sec:authorize>
<sec:authorize access="hasRole('ROLE_USER')">
Value1: <input type="text" name="value1" value="${entity.value1}" />
Value2: ${entity.value2}
<input type="hidden" name="value2" value="${entity.value2}" />
</sec:authorize>
<sec:authorize access="hasRole('ROLE_GUEST')">
Value1: ${entity.value1}
Value2: ${entity.value2}
<input type="hidden" name="value1" value="${entity.value1}" />
<input type="hidden" name="value2" value="${entity.value2}" />
</sec:authorize>
:
举一个简单的例子,我做这样的事情(管理员可以修改所有,用户只能修改value1和客户不能修改)尽可能简单?
谢谢 马尔科
你能告诉夫妇的例子吗? –
我已经添加了简单的示例代码 – gipinani
就像注释一样 - 请注意,您还必须仔细检查是否只在后端修改了允许的字段,否则恶意用户可能伪造POST请求并添加最初未显示的字段表格。 –