аутентификация данных весной монго дб ldap - PullRequest
0 голосов
/ 08 октября 2018

Наша компания недавно перешла с обычной аутентификации на аутентификацию LDAP, и обычные приложения теперь используют authSource=$external&authMechanism=PLAIN в URL.

Это нормально работает в обычном приложении, но я не могу понять, как установить их с помощью Spring Data.Конечно, есть способ сделать это, верно?

Ответы [ 2 ]

0 голосов
/ 24 января 2019
  • Если вы используете Spring-Boot mongodb api с LDAP, тогда в файлах application.properties в папке resources должен быть указан uri:

    spring.data.mongodb.uri="mongodb://username:password@host:port/?authSource=$external&authMechanism=PLAIN"
    spring.data.mongodb.database="databasThatYouWantToConnectTo"
    
  • Нет необходимости в других параметрах, таких как spring.data.mongodb.username, spring.data.mongodb.password и т. Д., Потому что все упоминается в spring.data.mongodb.uri

  • подстрока authSource=$external&authMechanism=PLAIN in spring.data.mongodb.uri сообщает Mongo, что аутентификация и авторизация выполняется с помощью LDAP.

  • Вы можете проверить изображение ниже, которое взято из URI-формата строки подключения из формы документа MongoDB enter image description here

  • Если вы используете драйвер Mongo Java, предоставляемый Mongo Db, то вам необходимо выполнить подключение следующим образом:

    import com.mongodb.MonogoClient;
    import com.mongodb.MongoClientURI;
    import com.mongodb.client.MongoDatabase;
    
    public class MongoConnect{
         public static void main(String args[]){
             MongoClientURI connString = new MongoClientURI("mongodb://username:password@host:port/?authSource=$external&authMechanism=PLAIN");
             MongoClient mongoClient = new MongoClient(connString);
             MongoDatabase database = mongoClient.getDatabase("databasThatYouWantToConnectTo");
             System.out.println(database.getName()+" "+ mongoClient.getCredentialList());
        } 
    }
    
0 голосов
/ 08 октября 2018

Как вы можете видеть ниже, вы не можете установить что-то вроде authSource / authMechanism, поэтому вам нужно перейти на использование URI.Также обратите внимание, что при использовании URI вы не можете использовать хост / порт и имя пользователя / пароль.Все они должны быть указаны в URI.

Что-то вроде

export spring_data_mongodb_database=db
export spring_data_mongodb_uri = mongodb://username:password@host:port?authSource=$external&authMechanism=PLAIN

Здесь перечислены все свойства, которые вы можете настроить для mongodb при весенней загрузке.

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

spring.data.mongodb.authentication-database= # Authentication database name.
spring.data.mongodb.database=test # Database name.
spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use.
spring.data.mongodb.grid-fs-database= # GridFS database name.
spring.data.mongodb.host=localhost # Mongo server host.
spring.data.mongodb.password= # Login password of the mongo server.
spring.data.mongodb.port=27017 # Mongo server port.
spring.data.mongodb.repositories.enabled=true # Enable Mongo repositories.
spring.data.mongodb.uri=mongodb://localhost/test # Mongo database URI. When set, host and port are ignored.
spring.data.mongodb.username= # Login user of the mongo server.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...