1

MongoDB 2.2 を実行しています。次のように、単一インスタンスの MongoDB にアクセスするための資格情報を追加できます。

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
  <property name="writeResultChecking" value="EXCEPTION"/>
  <property name="writeConcern" value="FSYNC_SAFE"/>
  <constructor-arg ref="myRs"/>
  <constructor-arg name="databaseName" value="mydb"/>
  <constructor-arg name="userCredentials" ref="userCredentials"/>
</bean>

<bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
  <constructor-arg name="username" value="username" />
  <constructor-arg name="password" value="password" />
</bean>

しかし、ドキュメントによると、レプリカセットではキーファイル認証のみが利用可能です。

Spring Data MongoDB を使用するときに MongoDB レプリカ セットに対して認証できるように、アプリ コンテキスト XML ファイルで DB 資格情報を優先的に (またはキーファイルでさえ) 使用するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

0

--keyfile オプションは、レプリカセット メンバー間のキー ベースの認証を有効にします。アプリケーションとレプリカセット間の通信には影響しません。

データベースにユーザーを追加する必要があります。プライマリに接続していることを確認してください。

$ mongo
PRIMARY> use the_database_i_want_to_be_authenticated
switched to db the_database_i_want_to_be_authenticated
PRIMARY> db.addUser("myusername","mypassword")
{
    "user" : "myusername",
    "readOnly" : false,
    "pwd" : "a6de521abefc2fed4f5876855a3484f5",
    "_id" : ObjectId("5194932444ef978a730c22d4")
}

データベースにユーザーを作成すると、次のように接続できるようになります。

<bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
    <constructor-arg name="username" value="username" />
    <constructor-arg name="password" value="password" />
</bean>
于 2013-05-16T08:18:58.730 に答える