Untitled
unknown
plain_text
6 months ago
1.8 kB
4
Indexable
class MongoConfig( @Value("\${spring.data.mongodb.host:localhost}") private val host: String, @Value("\${spring.data.mongodb.username:}") private val userName: String, @Value("\${spring.data.mongodb.password:}") private val password: String, @Value("\${spring.data.mongodb.database:}") private val database: String ) : AbstractMongoClientConfiguration() { private val log = logger() override fun getDatabaseName(): String { return database } @Bean override fun mongoClientSettings() = MongoClientSettings.builder().build() @Bean @Primary @Profile(Profiles.DEV, Profiles.STG, Profiles.PRD) fun mongoClientSettingsWithSSL(): MongoClientSettings { if (Profiles.isActiveProfile("local")) { return MongoClientSettings.builder() .build() } log.info("set ssl for database connection") return MongoClientSettings.builder() .applyToSslSettings { builder: SslSettings.Builder -> builder.enabled( true ) } .applyConnectionString( ConnectionString( "mongodb://$userName:${encodeUrl(password)}@$host/" + "?tls=true&tlsCAFsile=global-bundle.pem&replicaSet=rs0&" + "readPreference=secondaryPreferred" ) ) .build() } private fun encodeUrl(statement: String): String { var password = statement password = password.trim { it <= ' ' } if (password.contains("@") || password.contains(":")) { return URLEncoder.encode(password, StandardCharsets.ISO_8859_1) } return password } }
Editor is loading...
Leave a Comment