我正在尝试使用Grails Shiro插件实现AuthorizingRealm。使用插件生成的类ShiroLdapRealm对Active Directory进行身份验证。角色将保留在应用程序的数据库中。
那么如何将ShiroLdapRealm身份验证与我的自定义授权相集成?在我看来,Grails Shiro插件使用RealmWrapper从Grails世界隐藏Shiro的内部,它只实现了一个标准的Realm类,而不是AuthorizingRealm。
有什么想法吗?谢谢!
答案 0 :(得分:1)
之前我没有使用过shiro,但是我已经在几个项目中成功使用了shiro插件......
因此,如果您已经有了LdapRealm,请将ShiroLdapRealm.groovy文件复制到安全备份位置并将其从项目中删除...
接下来,创建一个shiro通配符域(create-wildcard-realm
)。这将创建一个具有身份验证和授权功能的领域。
将authenticate()
方法从旧区域复制到此区域......
现在,您可以使用有效ShiroUser
作为结果对LDAP进行身份验证。
您可以为此用户分配ShiroRole
及相应的权限。
您可以在引导程序中轻松创建具有权限的所需角色,并根据您从目录服务中读取的ACL将其分配给用户...
希望有所帮助