【发布时间】:2018-03-14 08:45:48
【问题描述】:
Java EE 8 Web 应用程序可以有多个领域:一个始终启用内部用户存储,另一个用于针对 AD 的身份验证/作者(例如)。
因此,领域列表如下:
- 领域 1:LocalUserRealm 扩展了 AuthorizingRealm
- 领域 2:ActiveDirectoryRealm(可选,应通过应用程序启用和配置,提供所需的设置:ldap url、usr、pwd 等)
目前,shiro.ini 如下所示:
[main]
...
localUserRealm = local.LocalUserRealm
...
adRealm = org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm
...
securityManager.realms = $localUserRealm, $adRealm
问题:按下应用程序中的“启用 AD 集成”/“禁用 AD 集成”等按钮后,即时启用/禁用可选 adRealm 的最佳方法是什么?
- 在运行时通过
SecurityUtils.getSecurityManager().setRealms(realmsList)添加领域是否有效? - 禁用/销毁领域的最佳方法是什么(或者通过排除禁用的领域再次使用
SecurityUtils.getSecurityManager().setRealms(realmsList))?
【问题讨论】: