我知道可以在 Controller 中构建逻辑,我们可以在将 View 转发给用户之前通过不将下拉值添加到模型映射对象来尝试限制用户查看下拉值。我们现在已经实现了。 但现在我们正在尝试探索 Spring 安全性并将其添加到我们的应用程序中。 我知道 spring security 可以拦截 url,然后阻止对其的访问或根据用户权限限制访问。 但是,是否可以使用 Spring Security 向用户提供对页面的访问权限,但限制他查看他无权访问的下拉值。 关于 Spring Security 集成的任何建议和链接都会非常有帮助。
最佳答案
如果我理解正确的话,这应该可行,但现在没有尝试。
假设您的下拉菜单包含植物,但用户可以看到水果或蔬菜。您可以创建两个角色: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>
关于java - 可以使用 Spring 安全性根据访问级别隐藏/显示下拉值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32989315/