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

Sve*_*ven 5 java security authentication authorization

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

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

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

我很高兴任何建议或建议.

Les*_*ood 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文件中轻松完成.例如:

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

[roles]
role1 = perm1, perm2, ..., permN
role2 = permA, permB, ..., permZ
Run Code Online (Sandbox Code Playgroud)

在一天结束时,Apache Shiro和Spring Security都是很好的框架 - 两者都有很好的优点.您的选择应该基于哪一个更适合您的心理模型(哪些接口和类名更有意义?哪个更容易理解和使用?)

干杯,

莱斯

  • 就像我提到的很多:Shiro 真的很容易,但你必须自己找出来,除非有人要写一些教程,我不想看到 bruce Phillips 教程,他们比帮助更令人困惑。希望有人会这样做,以便shiro可以变得更受欢迎...... (2认同)