我花了几周的时间试图找出我应该为此发布的解决方案question。由于我无法找到Shiro-Grails集成的完整文档,我正在寻找一些其他框架(如Spring)来保护我们基于Web的轻量级Web应用程序。
该应用程序已有几个月的历史,并不是一个巨大的应用程序。不超过20个持久类。但是,我相信它会很快成长。但是,安全性还没有实现,我想确保我会找到最好的安全框架(对我来说最好的可能包括:免费源代码,文档齐全,易于与Grails集成,可扩展,最后但更不安全更安全)。
有什么建议吗?
答案 0 :(得分:8)
史蒂夫是对的 - 它位于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:如果有人知道如何在SpringSecurity中完成这种* -Permission,请发表评论!
答案 1 :(得分:5)
标准的Grails安全框架是Spring Security。查看docs
答案 2 :(得分:3)
几乎是在SpringSecurity和Shiro之间。
Spring Security似乎正在成为Grails的标准,因为doelleri说,它应该提供你所希望的任何东西,并且well documented和设计。 Shiro我发现在功能上与基本的安全任务相提并论,但我觉得相比之下,文档让它失败了。有一个名为Nimble的插件(现在没有被维护)以Shiro为基础,Nimble功能强大,提供了许多功能,如用户管理GUI开箱即用。
我刚开始使用Spring Security开发一个新项目,现在我发现它非常强大且易于使用,很高兴我做出了改变。但最终还是取决于您的项目/组织需求。