0

我有一个正在测试的简单网络应用程序。它有两个级别,即管理员和普通用户。该项目还包括三个实体。我想要实现的是用户无法删除第一个实体中的任何条目的实例,尽管他可以创建一个。

我相信使用@RequestMapping 是实现这一目标的方法,但不完全确定如何实现,如果没有,还有其他方法吗?一个片段代码将不胜感激。

提前致谢。

4

1 回答 1

0

jspx如果您只是通过用户界面阻止访问,然后不允许通过控制器调用删除方法,则可以隐藏视图文件上的删除按钮。您还可以使用其他方法来限制用户执行某些操作。

1. 用户界面

但是,您需要对控制器执行手动检查,以确保未经授权的用户不会执行删除操作。

为此,首先您需要将 Spring Security JSP 标记库名称空间导入到您的jspx文件中。

xmlns:sec="http://www.springframework.org/security/tags"

然后使用您刚刚导入的 Spring 安全标签来包围您需要在用户级别显示的元素。

例如:

   <sec:authorize access="hasRole('ROLE_ADMIN')">
       <p>User is an administrator</p>
       <!-- Delete button goes here -->
    </sec:authorize>

有关标签库的更多信息,请访问http://static.springsource.org/spring-security/site/docs/3.0.x/reference/taglibs.html

2.控制器

您可以ROLE_ADMIN通过在您的applicationContext-security.xml

<intercept-url pattern="/countries/**" access="hasRole('ROLE_ADMIN')" method="DELETE"/>

如果它不适合您,请尝试通过以下链接。

http://forum.springsource.org/showthread.php?123781-intercept-url-method-attribute-not-work-with-put-and-delete

有关 Spring Security 的有趣教程,请访问http://static.springsource.org/spring-security/site/petclinic-tutorial.html

干杯。

于 2013-03-29T14:49:05.420 回答