Ist es möglich, MongoDB als Shiro-Realm zu implementieren?
大家讲道理
大家讲道理 2017-05-17 09:58:54
0
1
595

Meine Anforderung besteht darin, Benutzer- und Berechtigungsinformationen aus der Datenbank zu lesen, um die Authentifizierung und Autorisierung abzuschließen. Shiro bietet eine JdbcRealm-Implementierung, es gibt jedoch keine MongoDB-Realm-Implementierung.
Darf ich bitte:

  1. MongoDB als Reich von Shiro implementieren?

  2. Wenn möglich, wie schreibe ich die spezifische Konfiguration? (Google hat einen bestimmten Implementierungscode gefunden, aber die relevanten Konfigurationsdateien fehlen)

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(1)
刘奇

谢邀, 你只需要实现自己的Realm就行, 比如:

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;
  }
}

然后把你自己的Realm设置到RealmSecurityManager中, 比如:

DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(new MyRealm());

然后把这个SecurityManager设置到ShiroFilter中就行, 比如:

ShiroFilterFactoryBean shiroFilterFactory = new ShiroFilterFactoryBean();
shiroFilterFactory.setSecurityManager(securityManager);
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage