grails 查看插件_一个Grails插件来桥接Spring Security和Shiro

grails 查看插件

我从2007年开始使用Spring Security,当时我要负责为所服务的公司在Spring / Hibernate应用程序中添加安全性。 有几个选项可供选择,没有一个特别易于使用,我们选择Acegi Security是因为它是Spring应用程序中最受欢迎的选项。 我的经验与其他许多人一样,令人感到困惑和沮丧,并且需要大量XML。 下一个主要版本被重命名为Spring Security 2.0,并作为Spring子项目正式引入,幸运的是,它使用Spring XML名称空间使配置大大简化。

当我开始使用Grails并发现它支持插件时,我首先看到的是acegi插件,我最终成为了插件维护者,后来写了大多数较新的Spring Security插件。 我一直在使用Spring Security,因为它非常强大并且因为我非常了解它,一直在努力学习Acegi 1.0.x,然后又转向Spring Security 2.x和3.x。

Grails还有另一个流行的安全性插件shiro插件。 我没有使用过它,但是它的声誉是它比Spring Security更易于使用。 我认为对于插件来说情况并非如此,因为spring-security-core及其相关插件非常用户友好,但在不使用插件或直接使用基础API的情况下更是如此。 在大多数情况下,Spring Security和Shiro的功能集与Spring Security的其他一些功能重叠(但是Shiro正在Swift追赶)。 但是ACL和权限是在Spring Security中实现奇怪且难以使用但在Shiro中易于使用的一项功能。

我花了很长时间才能完成spring-security-acl插件,这在很大程度上是因为Spring Security ACL实现过于复杂且难以使用。 它可以工作,但远非用户友好。 但是,在查看Shiro插件的文档时,我很嫉妒看到您可以执行一些简单的操作,例如向用户授予“ printer:print:*”许可,而通配符则意味着“ printer:print:lp7200? 和“ printer:print:epsoncolor”权限。 然后,您可以使用@RequiresPermissions('printer:print:*)保护服务方法,并且被授予“ printer:print:*”(或更具体的权限,例如“ printer:print:lp7200?”)的用户可以调用该方法,并且其他人将被拒绝。

前一段时间,我认为除了Spring Security之外,还可以使用Shiro的权限支持会很棒。 几个月前,我开始研究它,并于本周末再次将其拾起并使其工作。 基本上,它只是添加一个过滤器,该过滤器在Spring Security SecurityContextPersistenceFilter之后运行,该过滤器使用您当前的Authentication填充SecurityContext (通常来自HTTP会话),并创建具有相同信息的Shiro Subject并将其注册到ThreadContext 。 此外,它还增加了对存储许可信息的支持。 默认情况下,这是通过与现有用户类具有多对一关系的域类完成的,但这是可自定义的。

因此,现在您可以将spring-security-shiro与spring-security-core及其任何相关插件一起安装,并使用两种方法。 您甚至可以同时使用Spring Security ACL和Shiro ACL。

查看插件页面文档以获取更多信息

参考: 一个Grails插件,可以将我们的JCG合作伙伴 Burt Beckwith的Spring Security和Shiro桥接An Solipsists博客上。

翻译自: https://www.javacodegeeks.com/2013/01/a-grails-plugin-to-bridge-spring-security-and-shiro.html

grails 查看插件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值