2011-03-23 33 views
3

我讀過的功能什麼的Spring Security提供的網站上一點點..春季安全可以回答這些需求嗎?

但我只想做潛水前務必下來,甚至我自己的滾動簡單的解決方案,希望從有經驗的開發一些確認的是利用Spring的安全性。

即時通訊目前使用JSF2 + primefaces,spring3,JPA2 + hibernate的

我有這方面的需求發展:

  1. 擁有的用戶列表,用戶組
  2. 的需要對用戶進行認證在登錄時(這是非常基本的,它必須已經被支持)
  3. 安全系統可以配置爲模塊(java項目的包或者可以看作UI中的菜單/程序),所以如果用戶被配置爲能夠訪問al l菜單1和菜單3中的程序,菜單4中只有1個程序,則僅顯示允許的菜單,直接訪問不允許的菜單/程序URL將導致錯誤。
  4. 需要在服務方法(純java方法)上對用戶進行身份驗證,如只讀級別,r/w級別。例如,如果我們可以配置該公共無效保存(...)以獲得r/w訪問權限,則只有具有r/w訪問權限的用戶纔可以調用此方法
  5. 甚至可以在JSF 2 xhtml上擴展此功能,在那裏我可以使用r或r/w訪問來啓用/禁用按鈕或鏈接或其他東西,也許編程方式使用jsf組件的disabled屬性。
  6. 如果某些功能如驗證程序或服務方法是使用AOP透明地完成的,而不污染業務流程代碼,則會更好。

請在此分享您的意見..

謝謝!

+0

總之,是的! – 2011-03-23 10:35:43

+0

+1好問題 – Nilesh 2011-03-23 10:40:25

+0

spring security + JSF 2.0是一個很好的組合。前進! – Selvin 2011-03-23 13:37:27

回答

1

Spring Security將支持您的大部分要求。

  1. 您可以使用該角色。例如:USER,ADMIN,CONTRIBUTOR等。請參閱http://static.springsource.org/spring-security/site/docs/3.0.x/reference/technical-overview.html
  2. 您可以使用 嵌套在安全配置的http元素中的form-login元素。請參閱http://static.springsource.org/spring-security/site/docs/3.0.x/reference/ns-config.html#ns-getting-started
  3. 在視圖方面,您可以控制誰在使用JSP時使用taglibs。請參閱http://static.springsource.org/spring-security/site/docs/3.0.x/reference/taglibs.html然後在服務器端,確保發出特定呼叫的人有權這樣做。您可以在URL級別和方法級別進行控制。例如,對於URL,您有嵌套在http中的intercept-url元素。您可以使用@Secured註釋保護方法
  4. 不確定您對特定方法的讀寫意味着什麼,但是如#3所述,您可以使用註釋來保護方法
  5. 不確定JSF可以讓您這樣做,但是如果你使用的JSP,您可以使用標籤庫像以前
  6. 說應該可以這樣做,但我不能爲你提供任何例子雖然。我也想在這個上看別人。
+0

感謝您的分享。關於用戶角色,我們可以定義自己的角色嗎?我希望爲客戶提供一個web應用程序,以便能夠根據需要創建他們自己的用戶,將用戶與一個或多個角色相關聯,創建新角色,將角色與程序相關聯,無論它是隻讀還是隻讀訪問。春季安全還支持JSF,因爲我不再爲這個新項目做任何JSP。謝謝 ! – bertie 2011-03-24 03:20:36

+0

當你說「與程序相關聯的角色」時,你打算怎麼做?聽起來你想創建動態角色(這很好),但是你如何定義某個特定「區域」僅限於特定角色?至於JSF,我不確定它支持什麼。 – 2011-03-24 13:37:33

+0

抱歉不清楚,但..想象一下,我有購買,銷售,應付賬款,庫存等菜單。這些菜單中的每一個都有菜單項或子菜單。每個菜單項都對應一個JSF視圖。例如,我想繪製一個示例,該角色或此用戶只能訪問菜單購買,但不能訪問銷售,也可以訪問庫存菜單中的多個菜單項,但僅限於只讀訪問。 – bertie 2011-03-25 03:42:21