哪个安全框架用于 Grails 应用程序?

Posted

技术标签:

【中文标题】哪个安全框架用于 Grails 应用程序?【英文标题】:Which Security Framework to use for Grails application? 【发布时间】:2012-02-02 16:11:06 【问题描述】:

我花了几个星期试图找出我应该为我发布的这个question 带来什么解决方案。由于我找不到 Shiro-Grails 集成的完整文档,我正在寻找其他一些框架(如 Spring)来保护我们基于 Web 的轻量级 Grails 应用程序。

该应用程序已有几个月的历史,并不是一个庞大的应用程序。没有更多的 20 个持久类。但是,我相信它很快就会长大。但是,安全性还没有实现,我想确保我能找到最好的安全框架(对我来说最好的可能包括:免费源、有据可查、易于与 Grails 集成、可扩展、最后但同样重要的是更安全)。

有什么建议吗?

【问题讨论】:

【参考方案1】:

Steve 是对的 - 它介于 SpringSecurity 和 Shiro 之间。

我正在使用 Shiro - 文档不如预期的好,但 *-Permissions 很棒。

您通过指定 "controller:action" 元组来授予权限。您可以使用列表和通配符:

"*:list,show" //everything read-only
"book:*"      //everything allowed on the book class
"*:*"         //admin

因此,您在一个文件中拥有作为白名单的所有权限(基于控制器:操作)。

到目前为止,我所看到的 SpringSecurity 是您通常基于 URL 的权限 - 恕我直言,这是保护控制器或操作的一种简单方法。参见Securing actions in Grails 2 rc3 例如:-)

PS:如果有人知道这种 *-Permission 在 SpringSecurity 中是如何完成的,请发表评论!

【讨论】:

同意 - Shiro 中的两个杀手级功能是权限和分布式会话。简单也是一个卖点。 感谢拉尔夫的评论。嗯,我同意你们说的。但是,我相信我面临的问题只是一个简单的问题,但是由于缺乏文档,我白白浪费了时间。如果你还没有看过,这里是我之前的问题***.com/questions/8584671/…。你知道为什么它会提供所有的赠款吗?【参考方案2】:

标准的 Grails 安全框架是 Spring Security。查看docs

【讨论】:

【参考方案3】:

几乎介于SpringSecurity 和Shiro 之间。

正如 doelleri 所说,Spring Security 似乎正在成为 Grails 的标准,它应该提供您所希望的任何东西,并且是 well documented 和设计的。 Shiro 我发现在基本安全任务方面的功能是相当的,但相比之下我觉得文档让我失望了。有一个名为 Nimble 的插件(现在不维护),它以 Shiro 为基础,Nimble 功能强大,提供了很多开箱即用的用户管理 GUI 等功能。

我刚开始为一个新项目使用 Spring Security,现在发现它非常强大且易于使用,很高兴我做出了改变。但最终取决于您的项目/组织需求。

【讨论】:

我仍然有机会选择 Spring 而不是 Shiro。我们的应用程序只是一个简单的数据管理系统。目前它还不是一个庞大的系统。 Grails userGrails user 上刚刚出现了关于 MatX 的有用讨论

以上是关于哪个安全框架用于 Grails 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

Spring 安全性不适用于 JBoss 应用程序服务器上的 Grails 项目

使用 Spock 进行 Grails 测试 - 选择哪个模拟框架?

Rails 还是 Grails? [关闭]

在 grails 中与开放 id 的 Spring 安全集成

在 Grails Spring 安全核心插件中配置了两次 Spring 安全核心框架

是最新的春季安全版兼容grails 2应用程序?