Maison > Questions et réponses > le corps du texte
Mon exigence est de lire les informations d'utilisateur et d'autorisation de la base de données pour terminer l'authentification et l'autorisation. Shiro fournit une implémentation de JdbcRealm, mais il n'y a pas d'implémentation de domaine MongoDB.
Puis-je s'il vous plaît :
Implémenter MongoDB en tant que royaume de Shiro ?
Si possible, comment rédiger la configuration spécifique ? (Google a trouvé un code d'implémentation spécifique, mais les fichiers de configuration correspondants sont manquants)
怪我咯2017-05-17 10:00:54
Merci pour l'invitation, il vous suffit d'implémenter votre propre Royaume, par exemple :
public class MyRealm extends AuthorizingRealm {
// 认证
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
// TODO 从数据库中获取用户信息, 从Mongo中查出来的
return null;
}
// 授权
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
// TODO 从数据库中获取授权信息, 从Mongo中查出来的
return null;
}
}
Ensuite, définissez votre propre Realm
sur RealmSecurityManager
, par exemple : Realm
设置到RealmSecurityManager
中, 比如:
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(new MyRealm());
然后把这个SecurityManager
设置到ShiroFilter
ShiroFilterFactoryBean shiroFilterFactory = new ShiroFilterFactoryBean();
shiroFilterFactory.setSecurityManager(securityManager);
Ensuite, définissez simplement ce SecurityManager
sur ShiroFilter
, par exemple : 🎜
rrreee