【发布时间】:2010-12-20 21:54:57
【问题描述】:
在 acegi、jsecurity 和 Stark 安全中,哪个是 grails 的最佳安全解决方案?
【问题讨论】:
标签: security grails spring-security jsecurity
在 acegi、jsecurity 和 Stark 安全中,哪个是 grails 的最佳安全解决方案?
【问题讨论】:
标签: security grails spring-security jsecurity
JSecurity 不久前实际上变成了一个名为 Apache Ki 的 Apache 项目,由于某种原因他们对名称更改不满意,并在此后不久将其更改为 Apache Shiro。此外,Stark 只是Spring Security 的 grails 插件包装器,而 acegi 是 Spring Security 项目的起源。
那么用哪一个呢?
首先,Spring Security 是一个成熟的安全 API,并且已经被广泛使用,所以从稳定性、支持性,尤其是安全性的角度来看,它是一个不错的选择。不幸的是,Shiro 在这方面有所损失,因为据我所知,它仍然缺乏广泛采用。
其次,安全框架的实际行为方式非常重要,它必须能够让您执行自己喜欢的保护应用程序的方案。例如,虽然有些人喜欢 Shiro 的工作方式(see this tutorial,尤其是标题“Quickstart.java”下的部分),但其他人却离不开 Spring Security 的 Spring 式东西等等等等。基本上,您需要尝试两者并从可用性的角度确定它们是否满足您的需求。
第三,确保实际安全! Spring Security 可以保证是安全的,Shiro 最有可能是安全的,因为没有广泛采用可以轻易隐藏安全问题,请参阅 Firefox vulnerabilities 以了解增加的用户群如何开始影响实际的安全性长期应用。
为了结束这个,如果我必须为你选择,我会选择 Spring Security,因为它被广泛使用,保证安全并且已经与 Grails 集成。 JSecurity/Ki/Shiro 一点也不差,我已经使用了一段时间,但目前它处于某种不确定状态,因为谁知道是什么原因,而且对于一个无法接受的安全框架而言。
编辑:我回答这个问题已经 1.5 年多了,所以我觉得有必要回过头来说我们公司最近决定使用 Spring Security,因为它的高可插拔性和经过验证的功能。这当然让我有点偏见,但无论如何,我会说 Spring Security 是要走的路。
【讨论】:
Esko 的回答很棒且全面。一个月前我对不同的框架进行了评估,尽管之前有过 Spring Security 的经验,但我还是选择了 Shiro 作为底层安全框架。我需要一个能够创建复杂授权要求的解决方案。 JSecurity 的模型非常简单,但非常强大。
不过,最终让我信服的是Nimble 插件,它是在 Shiro 之上的 UI 层。它允许您管理用户、角色、组、自助服务帐户创建、电子邮件等......并且很容易集成到您的应用程序中。不必编写所有代码对我来说是一个巨大的胜利。它还允许与 OpenId、facebook 等集成。
如果 Nimble 为 SpringSecurity 工作,我可能会选择它,但我认为这对我来说是一个巨大的胜利。
【讨论】:
感谢大家的回复。我实际上在 grails 应用程序上尝试了 spring security。 grails 插件使它非常易于使用。
问候。
乔什
【讨论】:
与 Spring 的方法相比,我使用了这两个框架并且喜欢 Shiro 的工作方式。我不知道为什么 Spring Security 如此受欢迎。与 Shiro 不同,只要需要配置,Spring Security 就会在整个应用程序中疯狂运行。对于大多数应用程序来说,安全性不是一个跨领域的问题吗?如果是这样,将其隔离到单个位置不是“更干净的代码”吗?我的两分钱。
【讨论】: