我正在测试一个简单的网络应用程序。它有两个级别,即管理员和普通用户。该项目还有三个实体。我想要实现的是一个用户不能删除第一个实体中的任何条目的实例,尽管他可以创建一个。
我相信使用@RequestMapping是实现这一目标的方法但不完全确定如何实现,如果没有,还有其他方法吗?我们将非常感谢代码段。
提前致谢。
答案 0 :(得分:0)
如果您只是通过用户界面阻止访问,然后禁止通过控制器调用delete方法,则可以隐藏视图jspx
文件上的删除按钮。您还可以使用其他方法来限制用户执行某些操作。
<强> 1。用户界面
但是,您需要对控制器执行手动检查,以确保未经授权的用户不执行删除操作。
Todo,首先需要将Spring Security JSP Tag库名称空间导入到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"/>
如果它不适合您,请尝试浏览以下链接。
有关Spring Security的有趣教程,请访问http://static.springsource.org/spring-security/site/petclinic-tutorial.html
干杯。