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

时间:2010-07-28 08:31:47

标签: java security authentication authorization

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

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

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

我很高兴有任何建议或建议。

3 个答案:

答案 0 :(得分:14)

绝对不是“Spring Security是唯一最通用的auth / auth提供商” - 这只是毫无根据的炒作。

Apache Shiro可以处理比Spring Security更多的用例,只是因为SS不支持企业会话管理或开箱即用的简化加密(Shiro确实如此)。 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 :(得分:3)

我研究了一点,我喜欢Apache Shiro。我遇到的问题是没有好的教程或如何...

以下是Shiro如何轻松工作的一个小例子: link

答案 2 :(得分:2)

无论您是否将弹簧容器用于您的应用程序(您应该:-)),Spring Security是唯一最通用的auth / auth提供程序。这是a brief overview of what it can do

(即使你的应用程序的其他部分没有使用spring,你也可以使用spring security)

相关问题