2010-02-23 29 views
18

因此,我有一個使用Wicket 1.4框架的基於Web的應用程序,它使用Spring bean,Java持久性API(JPA)和OpenSessionInView模式。我希望找到一個聲明性的安全模型,但不需要XML配置的採集 - 我更喜歡註釋。我應該如何確保使用Wicket,Spring和JPA編寫的Web應用程序?

以下是選項至今:

  1. 春季安全(guide) - 看上去完整,但每一個導遊,我發現,結合它與檢票仍然稱它爲Acegi安全,這讓我覺得它必須是舊。

  2. 檢票認證 - 角色(guide 1guide 2) - 大多數導遊推薦使用Spring Security混合此,我愛@Authorize的聲明樣式( 「基於role1」, 「role2所」 等)。我擔心必須擴展AuthenticatedWebApplication,因爲我已經擴展了org.apache.wicket.protocol.http.WebApplication,並且Spring已經在org.apache.wicket.spring.SpringWebApplicationFactory背後代理了。 SWARM/WASP(guide) - 這看起來是最新的(雖然主要貢獻者幾年前去世了),但我討厭所有爲主體聲明權限的JAAS樣式的文本文件。我也不喜歡爲用戶可能想要做的每一件事做一個Action類的想法。對我來說,安全模型也不是很明顯。另外,沒有Authn例子。

此外,它看起來像很多人推薦混合的第一個和第二個選項。不過,我不能說出最佳做法是什麼。

回答

8

我不知道,如果你看到這個blog post所以我在這裏將其作爲參考,我只是引述結束:

更新2009年3月12日:那些有興趣確保Wicket 應用程序也應該知道, 有一個替代 Wicket-Security,名爲 wicket-auth-roles。 This thread 將給你一個很好的概述了兩個框架的 狀態。 集成wicket-auth-roles與 Spring Security涵蓋了here
wicket-auth-roles的一個引人注目的功能是 配置授權和Java 註釋的功能。我發現不知何故 優雅比集中 配置文件。有一個 示例here

基於上述信息,並提供你的人,因爲我喜歡的註解也一樣,我會去使用Spring Security檢票認證 - 角色(即guide 2)。擴展AuthenticatedWebApplication應該不會成爲問題,因爲此課程延伸WebApplication。並且使用SpringWebApplicationFactory將應用程序對象從spring上下文中取出也應該正常工作。

如果你的擔憂是非常大的,這將是非常方便,快捷與IMO測試:)

+0

我還應該添加-wicket-auth-roles似乎不能處理基於角色的權限。例如,如果我有對象集合,則用戶不能爲每個對象分配角色。然後,SWARM似乎也無法處理這個問題。您是否認爲這些解決方案中的任何一個都更好,因爲我可能有更復雜的用戶+對象權限組合? – Martin

+0

@Martin我不確定任何這些解決方案能夠處理這個(看起來很複雜),但這可能超出我的知識。 –

+0

鏈接已死亡 – thg

2

我們一直使用檢票的安全性好幾年了確認,我們已與JAAS一起使用它文件和註釋。定義jaas文件相當麻煩,維護它們幾乎是不可能的...

通過註釋,必須爲每個頁面定義操作和主體。這是耗時的,但它確實允許您讓用戶動態定義角色和授權。也可以使用WicketTester測試所有校長。

3個軟件包中的每一個都具有(不)優點,這是一個品味問題,也取決於應用程序的大小。

相關問題