В моем загрузочном приложении Spring, когда я пытаюсь подключиться к MongoDB по шаблону uri
с зашифрованным паролем Jasypt, я получаю исключение аутентификации.Во время отладки я вижу, что расшифровка Jasypt не происходит при использовании URI, тогда как с индивидуальной конфигурацией монго (см. Ниже) соединение успешно.В журнале зашифрованная строка ENC(Qev1vJ3DummyPSUApeQfgdgfd==)
печатается без расшифровки.Вся конфигурация передается через командную строку, используя SPRING_APPLICATION_JSON
Используя uri
:( Не работает)
java -Dspring.application.json = "{ниже json} "-jar myapp.jar
{
"spring": {
"data": {
"mongodb": {
"uri": "mongodb://myusername:${spring.data.mongodb.password}@localhost:27017/mydb",
"password": "${mongodb.password}"
}
}
},
"jasypt": {
"encryptor": {
"password": "myjasypt-password"
}
},
"mongodb": {
"password": "ENC(Qev1vJ3DummyPSUApeQfgdgfd==)"
}
}
With Individual property setting
: (работает нормально)
java -Dspring.application.json =" {нижеjson} "-jar myapp.jar
{
"spring": {
"data": {
"mongodb": {
"host": "localhost",
"port": "27017",
"database": "mydb",
"username": "myusername",
"password": "${mongodb.password}"
}
}
},
"jasypt": {
"encryptor": {
"password": "myjasypt-password"
}
},
"mongodb": {
"password": "ENC(Qev1vJ3DummyPSUApeQfgdgfd==)"
}
}
Spring Boot: 1.5.2.RELEASE |MongoDB: 3.4.2 |Jasypt: 1.14
Исключение:
com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName=myusername, source=mydb, password=<hidden>, mechanismProperties={}}
Похоже, что расшифровка Jasypt не происходит, когда она используется в URI.Я не уверен, может ли это быть связано с начальной загрузкой конфигурации.Любые указатели будут полезны.