es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Configuración para la conexión de spring-data-mongo con replicaset + credenciales (nombre de usuario y contraseña).

Estoy usando la versión 1.6.0.RELEASE de spring-data-mongo.
Mi configuración de spring-data-mongo es la siguiente:

<mongo:mongo id="mongoConnection" replica-set="${mongoDbReplicaSet}">
        <mongo:options socket-timeout="20000" />
</mongo:mongo>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongoConnection" />
    <constructor-arg name="databaseName" value="${mongoDbName}" />
</bean>
<mongo:repositories base-package="com.my.package.mongo.repository"
    mongo-template-ref="mongoTemplate">
</mongo:repositories>

donde
mongoDbReplicaSet=172.229.226.221:17001,172.229.226.222:17001

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>1.6.0.RELEASE</version>
</dependency>

mariadb-java-client-1.6.2.jar
mongo-java-driver-2.12.3.jar

Estoy buscando la configuración de cómo usar las credenciales (nombre de usuario + contraseña) en esta configuración con spring-data-mongo versión 1.6.0.RELEASE.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para usar credenciales (nombre de usuario y contraseña) con la configuración dada en la versión 1.6.0.RELEASE de spring-data-mongo, puedes modificar el elemento <mongo:mongo> de la siguiente manera:

    <mongo:mongo id="mongoConnection" replica-set="${mongoDbReplicaSet}">
        <mongo:options socket-timeout="20000"></mongo:options>
        <mongo:client-uri>${mongoDbConnectionUri}</mongo:client-uri>
    </mongo:mongo>
    

    Aquí, se agrega un nuevo elemento <mongo:client-uri>, que especifica la URI de conexión para MongoDB con las credenciales. Puedes reemplazar la propiedad mongoDbConnectionUri con la URI que contiene el nombre de usuario y la contraseña como se muestra a continuación:

    mongoDbConnectionUri=mongodb://<username>:<password>@172.229.226.221:17001,172.229.226.222:17001/<databasename>
    

    Asegúrate de reemplazar <username>, <password> y <databasename> con los valores reales.

    Además, también puedes agregar el bean mongoCredential a <bean id="mongoTemplate"> de la siguiente manera:

    <mongo:mongo id="mongoConnection" replica-set="${mongoDbReplicaSet}">
        <mongo:options socket-timeout="20000"></mongo:options>
        <mongo:client-uri>${mongoDbConnectionUri}</mongo:client-uri>
    </mongo:mongo>
    
    <bean id="mongoCredential" class="com.mongodb.MongoCredential">
        <constructor-arg name="userName" value="${mongoDbUserName}"></constructor-arg>
        <constructor-arg name="source" value="${mongoDbDatabaseName}"></constructor-arg>
        <constructor-arg name="password" value="${mongoDbPassword}"></constructor-arg>
    </bean>
    
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongoConnection"></constructor-arg>
        <constructor-arg name="databaseName" value="${mongoDbDatabaseName}"></constructor-arg>
        <constructor-arg ref="mongoCredential"></constructor-arg>
    </bean>
    

    Aquí, el bean mongoCredential contiene el nombre de usuario, la contraseña y el nombre de la base de datos. En el elemento <bean id="mongoTemplate">, pasamos el bean mongoCredential como argumento del constructor a la clase MongoTemplate. Necesitas agregar las siguientes propiedades al archivo de configuración:

    mongoDbUserName=<username>
    mongoDbPassword=<password>
    mongoDbDatabaseName=<databasename>
    

    Reemplaza los marcadores de posición con los valores reales.

Comments are closed.