ApacheShiro多域身份验证&x2B;找出进行身份验证的领域
我有两个可能的领域来验证我的Web应用程序中的用户 以下是我的shiro.ini中的几行:ApacheShiro多域身份验证&x2B;找出进行身份验证的领域,shiro,Shiro,我有两个可能的领域来验证我的Web应用程序中的用户 以下是我的shiro.ini中的几行: securityManager.realms = $ldapRealm, $saltedJdbcRealm strategy = org.apache.shiro.authc.pam.FirstSuccessfulStrategy securityManager.authenticator.authenticationStrategy = $strategy 认证在这两个领域都很好,FirstSucce
securityManager.realms = $ldapRealm, $saltedJdbcRealm
strategy = org.apache.shiro.authc.pam.FirstSuccessfulStrategy
securityManager.authenticator.authenticationStrategy = $strategy
认证在这两个领域都很好,FirstSuccessfulStrategy也很好
在executeLogin()
方法中的自定义AuthenticationFilter中,我使用以下代码进行登录:
Subject currentUser = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
currentUser.login(token);
在执行.login()方法后,我现在如何确定哪个领域负责身份验证
如果用户是通过LDAP域进行身份验证的,那么我想从LDAP获取更多关于用户的信息
有人知道怎么做吗?Subject subj=SecurityUtils.getSubject()
Subject subj = SecurityUtils.getSubject()
SimplePrincipalCollection spc = (SimplePrincipalCollection) subj.getPrincipals();
Set<String> realmNames = spc.getRealmNames();
SimplePrincipalCollection spc=(SimplePrincipalCollection)subc.getPrincipals();
Set realmNames=spc.getRealmNames();
realmNames
变量应包含一个元素,即对用户进行身份验证的领域
如果您的领域实现是标准的,那么在用户通过身份验证时创建的SimpleAuthenticationInfo
将使用成功验证用户身份的领域的名称创建