2010-05-08 92 views
5

最好與Flex前端集成的東西。是的,Spring Security的人說這是可能的,但所有的例子似乎都使用遺留的jsp標記庫,這使得它們成爲無用的例子。我不想花一個月時間設置並學習如何使用安全工具。我想要一個支持使用註釋(@RolesAllowed等),MINIMAL XML和'記住我'功能(不基於cookie)的工具。Java認證有哪些選擇?

Apache Shiro似乎也支持Flex/Silverlight/Swing,但我想知道是否有任何其他替代品不是特定於容器的。

+0

當你說你不希望它是基於cookie的時候,你建議什麼類型的記憶?在一個會話中,您可以使用url中的參數,但是在會話之間,我不知道如何在沒有(閃存)cookie的情況下存儲憑據。 – 2010-05-08 21:14:43

+0

不能SharedObject做到這一點? http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/SharedObject.html 我不知道這樣做的後勤會是什麼,但它將很好地溝通容器會話管理使用不需要容器的東西(比如Shiro?)我希望能夠部署到J2EE容器,而不必擔心每次我的安全/會話功能都會中斷,但是我也不想花費1/3我的發展時間設置這種安全。這不是一個有價值的目標嗎? – Manius 2010-07-31 17:40:18

回答

8

結果Apache Shiro實際上比Spring安全性更簡單易學。沒有愚蠢的XML配置是不錯的。

0

我不明白Flex爲什麼要認證任何東西,畢竟那是客戶端。什麼阻止某人反編譯你的Flash/Flex?

對於大多數人來說,Apache Shiro是矯枉過正的,他們只是推出自己的產品。說實話不是最好的主意。多年來我見過很多可怕的認證系統。 Cookie旨在跟蹤客戶的會話,爲什麼還要使用其他任何內容?

編輯: 使用彈簧安全進行身份驗證。

+0

我想你會誤解,我不希望Flex自己對任何內容進行身份驗證(並且swf黑客正是我尋找真正的服務器端安全性的原因)。這只是參與的事實,即通過Blaze或Granite DS進行Remoting(RemoteObject)調用而不是簡單的表單提交,這意味着jsp標記示例並不是這樣的好例子。 – Manius 2010-05-08 18:28:00

+0

另外我相信Spring Security docs會談到一種替代基於cookie的持久性,它更安全(我忘記了它的名稱,但我相信它使用了一個數據庫),並且我不覺得cookie與Flex應用程序很好地集成。還有一件事 - 認證並不難(JAAS),但授權似乎更成問題。 – Manius 2010-05-08 18:31:12

+2

@Crusader你有點困惑。爲了維護會話狀態,將會話標識傳遞給Web服務器是絕對必需的。狀態由會話Bean保存或使用數據庫的天氣在安全方面無關緊要。如果此會話ID通過xss或嗅探泄漏給攻擊者,那麼該帳戶就會受到攻擊。這就是OWASP A3:破壞認證和會話管理需要在整個會話中使用HTTPS的原因。 – rook 2010-05-08 18:54:03

0

Spring Security是迄今爲止最好的工具。

BlazeDS並不神奇。它最終只是通過HTTP調用服務器。 Blaze應用程序僅僅是一個戰爭文件,並有傳統的網址。因此,爲了保護服務,您必須保護web.xml/spring配置文件中的url。

本質上,請閱讀Spring Security/JAAS的文檔,並將jsps替換爲您的火焰服務的URL。

Spring Security還支持角色和授權。它還具有記憶功能,,但絕對使用cookie的。沒有cookie,你不能擁有記事本功能。

關於身份驗證,可以將身份驗證令牌作爲請求參數而不是cookie傳遞。但推薦使用餅乾,並且更容易正確使用。

最後,沒有使用HTTPS,安全性毫無意義。如果您關心安全性,則必須在整個應用程序中使用https。

+3

我不明白爲什麼每個人都說Spring Security太棒了(或者說當Spring Security擁有大量的依賴關係和陡峭的學習曲線時,Shiro是「矯枉過正」)。 Shiro的目標是成爲'最容易使用的',幾乎沒有任何依賴和jar地獄,配置也很少。與春天的xml戀物癖形成對比,我不明白某人會怎麼說Shiro是過分的。如果有什麼Spring Security可能有更多的功能,但也更加臃腫。 這聽起來像這兩個是唯一的選擇... – Manius 2010-05-15 23:34:05