【问题标题】:MongoDb and morphia password and usernameMongoDb 和 morphia 密码和用户名
【发布时间】:2011-10-19 21:03:12
【问题描述】:

玩弄这个并且无法抓住
关于如何使用密码连接。

在 MongoDb 中它很容易理解,但是当我使用 morphia 时它不是
非常明显,因为文档很少,或者我错过了。

我已经有一个包含 5 个文档的集合。
我可以申请一个用户/传递那个吗?

如何修改此代码,以便使用用户名和密码进行日志记录?

从这篇文章中获取代码(感谢@Lennart Koopmann)
MongoDB Java driver tutorial

public final class MongoConnectionManager {

 private static final MongoConnectionManager
 INSTANCE = new MongoConnectionManager();
 private final Datastore db;
 public static final String DB_NAME = "mongo_database";

 private MongoConnectionManager() {
            try {
                Mongo m = new Mongo("localhost", 27017);
            db = new Morphia().map(UserData.class)
     .map(Statistic.class)
     .map(FriendList.class)
     .map(ServerData.class)
     .map(BatchData.class).createDatastore(m, DB_NAME);

                db.ensureIndexes();
            }
            catch (Exception e) {
                throw new RuntimeException("Error initializing mongo db", e);
            }
        }

        public static MongoConnectionManager instance() {
            return INSTANCE;
        }

        public Datastore getDb() {

            return db;
        }   
    }

【问题讨论】:

    标签: mongodb morphia


    【解决方案1】:

    也许您可以使用以下代码:

    Morphia morphia = new Morphia();
    ServerAddress addr = new ServerAddress("host", 27017);
    List<MongoCredential> credentialsList = new ArrayList<MongoCredential>();
    MongoCredential credentia = MongoCredential.createCredential(
        "username", "dbname", "password".toCharArray());
    credentialsList.add(credentia);
    MongoClient client = new MongoClient(addr, credentialsList);
    datastore = morphia.createDatastore(client, "dbname");
    

    【讨论】:

      【解决方案2】:
      createDatastore(m, DB_NAME, username, password)
      

      This已引入重载方法here

      也许您使用的是旧版 Moprhia 客户端?

      【讨论】:

      • 不确定这是我的 jar morphia-1.00-SNAPSHOT.jar。尼斯将尝试该代码。但我现在没有收藏的通行证/用户。 Mongo 会插入它,然后集合总是受密码保护吗? (不回头)
      • 根据this 文档,目前您可以基于数据库(而不是集合)配置安全性。
      • mm.. 是的,我的意思当然是数据库,它可以挖很多藏品,好的,明白了
      • 仅供参考 现在已弃用(截至 2014 年 2 月)并且用户名/密码被忽略而不发出警告...导致您的应用突然无缘无故地无法进行身份验证。
      猜你喜欢
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 2017-05-18
      • 2018-05-08
      • 2014-01-12
      • 2011-10-29
      相关资源
      最近更新 更多