2015-04-24 94 views
2

對於Spring Data,我試圖獲得一個具有用戶名和密碼憑證的Mongo對象。Spring Data MongoDB證書

我需要設置這個程序,而不是XML

的,我發現使用過時的系統的例子所有。我正在尋找目前的方式來做到這一點。

這是我到目前爲止有:

MongoClient connection = new MongoClient(host, port); 
List<MongoCredential> credentialsList = connection.getCredentialsList(); 
credentialsList.add(MongoCredential.createCredential(
      userName, 
      getDatabaseName(), 
      password.toCharArray() 
)); 

我真的不希望在這裏設置數據庫,因爲春天已經數據處理其他地方,但我不明白的方式獲得沒有它的MongoCredentials對象。

無論如何,無法找到一個很好的例子或者我能理解的文檔,這是我對如何去做的最佳猜測。但是,它不起作用。當使用連接時,它會拋出exception is com.mongodb.MongoException: not authorized for query我必須丟失一些東西,或者是我沒有意識到的OpenShift需求,或者我的憑據代碼中存在缺陷。

+0

或者是我不想要的已過時的示例,因爲OpenShift使用的是MongoDB 2.4,而不是3 –

回答

6

我能得到它,此代碼的工作:

ServerAddress serverAddress = new ServerAddress(
       environmentHost, Integer.parseInt(environmentPort)); 

MongoCredential credential = MongoCredential.createCredential(
       environmentUserName, 
       getDatabaseName(), 
       environmentPassword.toCharArray()); 

MongoClient client = new MongoClient(
       serverAddress, Arrays.asList(credential)); 

這需要至少版本2.13

這裏的MongoDB的Java驅動程序是在我的pom.xml中,我結束了一節使用:

<dependency> 
    <groupId>org.mongodb</groupId> 
    <artifactId>mongo-java-driver</artifactId> 
    <version>2.13.1</version> 
</dependency> 
相關問題