2013-03-28 110 views
0

我有一个简单的Web应用程序我测试了。它有两个层次,即管理员和普通用户。该项目还有三个实体。我试图实现的是用户无法删除第一个实体中的任何条目的实例,尽管他可以创建它。Spring Roo的权限级别

我相信使用@RequestMapping被方式来实现这一点,但不能完全确定如何执行,如果没有,还有什么其他的方法有哪些?一段代码将不胜感激。

在此先感谢。

回答

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.控制器

您可以拦截的URL,禁止用户谁不已在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

有关春季安全访问http://static.springsource.org/spring-security/site/petclinic-tutorial.html

干杯一个有趣的教程。