java - 可以使用 Spring 安全性根据访问级别隐藏/显示下拉值

标签 java spring security spring-security

我知道可以在 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/

相关文章:

java - Spring MVC ResourceBundleMessageSource XML 配置

java - 单元测试 KafkaMessageListenerContainer

php - laravel 护照授权码 - 要求授予权限,有必要吗?

java - 在服务器中部署后出现错误的 SQL 语法异常

java - 不使用正则表达式从查询字符串中删除一个参数

java - @OneToMany 分离实体传递到持久化

java - 对 XML 配置文件使用 @ImportResource 的解决方法

Java从受限层调用方法

php - 使用 session 中的 id 将数据插入数据库是否安全?

Java插件扩展点