2013-03-28 142 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

乾杯一個有趣的教程。