Maison  >  Questions et réponses  >  le corps du texte

Est-il possible d'implémenter MongoDB en tant que domaine Shiro ?

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 :

  1. Implémenter MongoDB en tant que royaume de Shiro ?

  2. 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)

大家讲道理大家讲道理2736 Il y a quelques jours563

répondre à tous(1)je répondrai

  • 怪我咯

    怪我咯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

    répondre
    0
  • Annulerrépondre