Java ApacheShiro:动态启用/禁用领域
JavaEE8Web应用程序可以有几个领域:一个始终为内部用户存储启用,另一个为auth/author对抗AD启用(例如) 因此,领域列表如下所示:Java ApacheShiro:动态启用/禁用领域,java,shiro,Java,Shiro,JavaEE8Web应用程序可以有几个领域:一个始终为内部用户存储启用,另一个为auth/author对抗AD启用(例如) 因此,领域列表如下所示: [main] ... localUserRealm = local.LocalUserRealm ... adRealm = org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm ... securityManager.realms = $localUserRealm, $adRea
[main]
...
localUserRealm = local.LocalUserRealm
...
adRealm = org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm
...
securityManager.realms = $localUserRealm, $adRealm
shiro.ini
如下所示:
[main]
...
localUserRealm = local.LocalUserRealm
...
adRealm = org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm
...
securityManager.realms = $localUserRealm, $adRealm
问题:按下应用程序中的“启用广告集成”/“禁用广告集成”等按钮后,动态启用/禁用可选的adRealm
的最佳方式是什么
SecurityUtils.getSecurityManager().setRealms(realmsList)
添加领域是否有效SecurityUtils.getSecurityManager().setRealms(realmsList)
李>
您可以调用
getRealms()
(如上所列),在替换它们之前,获取列表的增量。调用setRealms(newList)
。然后循环遍历delta并检查域是否可销毁,如果是,则调用destroy()
谢谢你在这里的回答!;)这有点旧,但由于我遇到了相同的问题,我将添加一个问题,要使其正常工作,您需要将SecurityUtils.getSecurityManager()
从SecurityManager
转换为RealmSecurityManager
,