使用 Grails Shiro 插件实现 AuthorizingRealm

Posted

技术标签:

【中文标题】使用 Grails Shiro 插件实现 AuthorizingRealm【英文标题】:Implementing a AuthorizingRealm with Grails Shiro plugin 【发布时间】:2012-04-13 18:48:39 【问题描述】:

我正在尝试。使用插件生成的类 ShiroLdapRealm 对 Active Directory 进行身份验证。角色将在应用程序的数据库中维护。

那么如何将 ShiroLdapRealm 身份验证与我的自定义授权相结合?在我看来,Grails Shiro 插件使用 RealmWrapper 向 Grails 世界隐藏 Shiro 的内部结构,它只实现了一个标准的 Realm 类,而不是 AuthorizingRealm。

有什么想法吗?谢谢!

【问题讨论】:

【参考方案1】:

之前没用过shiro,但是已经在几个项目中成功使用过shiro插件了……

所以,如果您已经有一个可以工作的 LdapRealm,请将 ShiroLdapRealm.groovy 文件复制到安全的备份位置,然后将其从项目中删除...

接下来,创建一个 shiro 通配符领域 (create-wildcard-realm)。这将创建一个具有身份验证和授权功能的领域。

authenticate() 方法从您的旧领域复制到此...

现在您可以使用有效的ShiroUser 对 LDAP 进行身份验证。

你可以给ShiroRoles分配相应的权限给这个用户。

您可以轻松地在引导程序中创建具有权限的所需角色,并根据您从目录服务中读取的 ACL 将它们分配给用户...

希望对你有帮助

【讨论】:

以上是关于使用 Grails Shiro 插件实现 AuthorizingRealm的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的项目中实现 Grails 的 Shiro 安全性

如何在 Grails/Spring Security 插件中禁用 /login/auth

如何在grails shiro中使用缓存权限

如何在 grails shiro 中使用缓存权限

如何在 Grails 2.0 中运行本地插件?

您可以在没有角色和权限的情况下将 Shiro 用于 Grails 吗?