2010-08-11 90 views
2

我一直在关注弹簧安全,并注意到它的一个非常大的包。我想知道是否值得努力花时间来提高这一点。是值得努力的弹簧安全

有弹簧安全性2.0+为您节省了大量时间,还是以任何方式简化了您的项目?

回答

3

几年前我考虑将它用于Spring项目,并选择反对它,因为它是一个非常繁重和复杂的框架,它提供的灵活性并不是必需的。 (按我的估计)减少我们自己的认证/授权的努力。不要误解这是一个微不足道的努力;永远不会有效的安全。

从风险的角度来看,我花了一段时间的文档后并没有深入理解它,并认为复杂性代表了配置错误的重大风险。它可能比我们建造的“更好”,但是如果我们不了解如何正确使用和配置它,那么它将无法实现它的潜力。自我理解的自定义实施(也可能是“低级”)安全模块不那么重要。

免责声明:当时Spring Security仍被称为Acegi,当前的技术可能随着名称发生了变化。

+0

ACEGI确实值得得出这个结论,但Spring Security自那时起经历了一次重大的重构。这值得再次考虑。 – duffymo 2010-08-12 00:27:47

+1

我的感受是一样的。我不知道这个兔子洞有多深。我知道我需要在深层次上理解这样的东西,才能有效和安全。 选择什么样的解决方案,它也需要足够简单,以便团队中的初级开发人员能够理解。如果没有人能够理解并应用它,它就不是很安全。 – clarson 2010-08-12 01:57:44

+0

2.x和3.0中的SpringSecurity“命名空间”扩展对简单用例具有*显着*简化的配置。 (他们可以为复杂的用例提供更多的命名空间钩子,但这是一个不同的鱼群。) – 2010-08-12 02:11:35

2

如果替代方案没有安全性或者写作和维护我自己的,我宁愿学习Spring Security。

如果我可以分摊几个项目的学习曲线,那么更好。

+1

这个答案是否包含任何信息? – irreputable 2010-08-12 00:13:12

+7

“....我想知道是否值得努力花时间来加强这个......” - 它确实提供了关于这个问题的一个观点。这比你提供的没有任何价值。 – duffymo 2010-08-12 00:26:28

7

春季安全2.0+为您节省了大量时间,还是以任何方式简化了您的项目?

对于我的项目,是的,是的。

这很大程度上取决于您的安全要求有多简单或复杂。

  • 如果你只需要做简单的事情,你可以只读取SpringSecurity文件,是有关你的问题的部分脱身。或者只是从样本中借用一些东西。

  • 如果您正在做复杂的事情,比如说与企业LDAP服务或使用OpenID,那么使用SpringSecurity将会非常简单,从(非弹性)第三方库开始自己实现。

根据我的经验,体面的网站安全是复杂和耗时的,不管你如何实现它。

+0

我们对某些涉及相当特定安全性(通过第三方Java API的LDAP/X509身份验证和授权)的项目使用Spring Security 2.0+,虽然它不适合我们的开箱即用需求,但它的可扩展性非常好。只需很少的子类和一些配置,我们就能得到我们想要的。我认为Spring Security 2.0+是节省时间的。 – gpeche 2010-08-30 14:00:02