可以使用Spring安全性基于访问级别隐藏/显示下拉值

时间:2015-10-07 10:00:06

标签: java spring security spring-security

我知道可以在Controller中构建逻辑,我们可以尝试在将视图转发给用户之前,通过简单地不将其添加到模型映射对象来限制用户查看下拉值。我们现在已经实施了。 但现在我们正在尝试探索Spring安全性并将其添加到我们的应用程序中。 我知道spring security可以拦截url,然后阻止访问它或根据用户权限限制访问。 但是是否可以向用户提供对页面的访问,但是限制他查看使用Spring Security无法访问的下拉值。 有关Spring安全集成的任何建议和链接都会非常有用。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,这应该有效,但现在没有尝试。

假设您的下拉菜单包括植物,但用户可以看到水果或蔬菜。您可以创建两个角色:ROLE_FRUIT和ROLE_VEGETABLE。如果您的工厂有一个名为type的属性,那么您可以在下拉列表中添加标记。

用户只能看到水果或蔬菜。

<form:select path="plantId">
    <form:option value="0" label="--- Select ---" />
    <c:forEach var="thePlant" items="${plants}">
        <security:authorize access="hasRole('ROLE_'+${thePlant.type})">
            <form:option value="${thePlant.plantId.toString()}"><c:out value="${thePlant.name}"/></form:option>
        </security:authorize>
    </c:forEach>
</form:select>