2017-01-05 9 views
1

私はこれまで、このトピックについての良い説明/文書を見つけることに失敗しました。春のデータmongodb、SSLの設定方法は?

私は

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

を使用していますし、私のコードは次のようになります。

@Bean 
    public MongoClientFactoryBean mongo() { 
     MongoClientFactoryBean mongo = new MongoClientFactoryBean(); 
     mongo.setHost(host); 
     mongo.setPort(port); 
     mongo.setCredentials(new MongoCredential[]{MongoCredential.createCredential(username, database, password.toCharArray())}); 
     return mongo; 
    } 

    @Bean 
    public MongoTemplate mongoTemplate(Mongo mongo) throws Exception { 
     return new MongoTemplate(mongo, database); 
    } 

あなたは私がこれのためにSSLを設定する方法を知っていますか?また、無効な証明書を許可することはできますか?

同等のmongoコマンドラインは次のようになり

mongo --ssl --sslAllowInvalidCertificates --host <host> --port <port> 

答えて

1

これは、ドキュメントで説明されています。以下を参照してください。

またhttp://mongodb.github.io/mongo-java-driver/3.0/driver/reference/connecting/ssl/?_ga=1.122423051.1001600813.1475930911

次の設定は、それを

を有効にするために使用することができます
@Bean 
    public MongoClientOptions mongoClientOptions(){ 
     System.setProperty ("javax.net.ssl.keyStore","<<PATH TO KEYSTOR >>"); 
     System.setProperty ("javax.net.ssl.keyStorePassword","PASSWORD"); 
     MongoClientOptions.Builder builder = MongoClientOptions.builder(); 
     MongoClientOptions options=builder.sslEnabled(true).build();   
     return options; 
    } 

mongoクライアントオプションを渡すモンゴのprocesssはMongoのプロセスに接続

Mongoの--ssl --sslAllowInvalidCertificates --host --port

クライアントで開始されたときに、さらに追加引数

public MongoClient(ServerAddress addr, MongoClientOptions options) { 
     super(addr, options); 
    } 

としてMongoClientインスタンスにこれをサポートするオプションを設定する必要はありません。

関連する問題