使用凭据连接到MongoDB-Micronaut
我们正在使用Micronaut构建一个web应用程序。应用程序需要凭据才能连接到托管MongoDB服务。从中可以看出,这可以使用下面给出的使用凭据连接到MongoDB-Micronaut,mongodb,micronaut,Mongodb,Micronaut,我们正在使用Micronaut构建一个web应用程序。应用程序需要凭据才能连接到托管MongoDB服务。从中可以看出,这可以使用下面给出的application.xml属性来完成 mongodb: uri: mongodb://username:password@localhost:27017/databaseName 但是,此处凭据作为配置属性本身的一部分进行维护 在我们的场景中,凭据存储在加密存储中,在建立到MongoDB的连接之前,需要先读取这些凭据 是否有方法在MongoCli
application.xml
属性来完成
mongodb:
uri: mongodb://username:password@localhost:27017/databaseName
但是,此处凭据作为配置属性本身的一部分进行维护
在我们的场景中,凭据存储在加密存储中,在建立到MongoDB的连接之前,需要先读取这些凭据
是否有方法在MongoClient实例化期间注入凭据,以便可以使用注入的凭据连接到托管MongoDB实例
我们使用的是micronaut mongo反应式客户端。如果这对任何人都有帮助,那么下面的方法可以工作 使用
@替换注释创建一个新工厂,该注释允许覆盖MongoClient的默认注入。在该类中,从加密存储读取凭据,然后使用相同的凭据构造Mongo连接字符串
@Factory
public class MongoClientFactory {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
@Inject EncryptedStoreService encryptedStoreService;
@Singleton
@Bean(preDestroy = "close")
@Replaces(MongoClient.class)
public MongoClient mongoClient() {
MongoClient mongoClient = null;
try {
// Formulate a ConnectionString based on data read using the encryptedStoreService
mongoClient = MongoClients.create(connectionString);
} catch (IOException e) {
logger.atSevere().log("Error occured", e);
}
return mongoClient;
}
}
爱小人 能否将用户名和密码设置为环境变量?