如何配置Shiro以使用Active Directory身份验证,此外我还想将用户名映射到自定义角色。我似乎无法找到任何相关信息。任何人都可以给我任何指示吗?
答案 0 :(得分:1)
要执行Active Directory身份验证,请使用JndiLdapRealm
对于授权,覆盖方法queryForAuthorizationInfo
请注意,您可能从AD获得了组,因此您必须提供自己的映射(组到角色)。
关于这个shiro reference manual说:
当需要将角色名称转换为一组具体的Permission实例时,Realm可以在内部使用RolePermissionResolver。
这是一项特别有用的功能,用于支持可能没有权限概念的遗留或不灵活的数据源。
例如,许多LDAP目录存储角色名称(或组名称),但不支持将角色名称与具体权限关联,因为它们没有“权限”概念。基于Shiro的应用程序可以使用存储在LDAP中的角色名称,但实现RolePermissionResolver可将LDAP名称转换为一组显式权限,以执行首选显式访问控制。权限关联将存储在 另一个数据存储,可能是本地数据库。
希望这会有所帮助
答案 1 :(得分:0)
我正在做同样的事情,但我很确定你必须编写一个自定义的AuthenticationStrategy。我想对AD进行身份验证,但是使用INI来定义角色,但是我无法让它表现得足够正常以至于不接受任何身份验证(甚至使用FirstSuccessfulStrategy)。我没有太过深入研究,所以也许其中一个漂浮的四郎人可以纠正这个问题,但我今天遇到了这些问题。