2010-07-28 178 views
5

我正在用Java EE,JSF和Hibernate編程Web應用程序。我不使用Spring或EJB!現在我正處於實施身份驗證和授權的階段。我需要訪問Active Directory或LDAP。我想實現我自己的角色,而這些角色不是從AD/LDAP中檢索的。Java Web應用程序的身份驗證和授權框架

我的問題是: 實現這個最簡單的方法是什麼?我應該使用JAAS/Apache Shiro這樣的框架嗎?哪一個最適合我的意圖?

關於小角色的概念:我計劃設置一個屬性文件,我可以在其中配置角色。我只有很少的角色,所以一個大概念不是必需的?!

我很高興任何推薦或建議。

回答

14

這肯定是不正確的「春季安全是一個最通用的認證/身份驗證提供商有「 - 這只是毫無根據的炒作。

如果僅因爲SS不支持企業會話管理或開箱即用簡化密碼(Shiro),Apache Shiro可以處理比Spring Security更多的用例。 Shiro還支持開箱即用的更細粒度的安全模型(例如Shiro的WildcardPermission)。 Shiro還提供LDAP和Active Directory。另外請注意,Shiro是從一開始就建立起來的,具有建築基礎,可以在任何應用程序環境中工作,而不僅僅是Spring應用程序(但它確實在Spring應用程序中很出色)。 Spring Security也不能這麼說(它確實是最初只爲Spring應用程序構建的)。

就少數用戶和/或角色而言,您可以輕鬆地在shiro.ini file中做到這一點。例如:

[main] 
... 
[users] 
jsmith = password, role1 
ajones = anotherPassword, role1, role2 

[roles] 
role1 = perm1, perm2, ..., permN 
role2 = permA, permB, ..., permZ 

在一天結束時,Apache Shiro和Spring Security都是很棒的框架 - 兩者都很好地滿足自身的優點。你的選擇應基於哪一個適合你的心智模型更好(其接口和類的名稱更有意義?這是您更容易理解和使用?)

乾杯,

萊斯

+1

就像我提到很多:Shiro很簡單,但你必須自己找出來,除非有人會寫一些教程,我不想看到Bruce Phillips教程,他們比幫助更困惑。希望有人會這樣做,以便上郎可以變得更受歡迎... – Sven 2010-08-11 07:03:43

2

無論您是否使用彈簧容器(您應該:-)),Spring Security是最通用的auth/auth提供程序。這裏是a brief overview of what it can do

(你可以使用Spring的安全,即使你不使用彈簧您的應用程序的其餘部分)

+1

只是爲了明確表示:它是否可以從非Windows盒子對Active Directory進行身份驗證? – 2010-07-28 09:04:26

+1

SpringSecurity執行LDAP。雖然我不知道Active Directory。 – 2010-07-28 09:23:32

3

我學一點點,我喜歡阿帕奇四郎。這個問題我有沒有好的教程或HOWTO的...

這裏有一個小例子四郎多麼容易的工作原理: link

相關問題