我有一个正在测试的简单网络应用程序。它有两个级别,即管理员和普通用户。该项目还包括三个实体。我想要实现的是用户无法删除第一个实体中的任何条目的实例,尽管他可以创建一个。
我相信使用@RequestMapping 是实现这一目标的方法,但不完全确定如何实现,如果没有,还有其他方法吗?一个片段代码将不胜感激。
提前致谢。
我有一个正在测试的简单网络应用程序。它有两个级别,即管理员和普通用户。该项目还包括三个实体。我想要实现的是用户无法删除第一个实体中的任何条目的实例,尽管他可以创建一个。
我相信使用@RequestMapping 是实现这一目标的方法,但不完全确定如何实现,如果没有,还有其他方法吗?一个片段代码将不胜感激。
提前致谢。
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"/>
如果它不适合您,请尝试通过以下链接。
有关 Spring Security 的有趣教程,请访问http://static.springsource.org/spring-security/site/petclinic-tutorial.html
干杯。