Java Web应用程序的身份验证和授权框架

问题描述:

我正在用Java EE,JSF和Hibernate编程Web应用程序。我不使用Spring或EJB!现在我正处于实施身份验证和授权的阶段。我需要访问Active Directory或LDAP。我想实现我自己的角色,而这些角色不是从AD/LDAP中检索的。Java Web应用程序的身份验证和授权框架

我的问题是: 实现这个最简单的方法是什么?我应该使用JAAS/Apache Shiro这样的框架吗?哪一个最适合我的意图?

关于小角色的概念:我计划设置一个属性文件,我可以在其中配置角色。我只有很少的角色,所以一个大概念不是必需的?!

我很高兴任何推荐或建议。

这肯定是不正确的“春季安全是一个最通用的认证/身份验证提供商有“ - 这只是毫无根据的炒作。

如果仅因为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

无论您是否使用弹簧容器(您应该:-)),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

我学一点点,我喜欢阿帕奇四郎。这个问题我有没有好的教程或HOWTO的...

这里有一个小例子四郎多么容易的工作原理: link