druid-io / tranquility

Tranquility helps you send real-time event streams to Druid and handles partitioning, replication, service discovery, and schema rollover, seamlessly and without downtime.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SSL Issue when connecting to secured druid instance

debashis1982 opened this issue · comments

I am using io.druid:tranquility-core_2.11:0.8.3 as the dependency to connect to druid and write data to it

The properties in my config file look like this -

"properties": {
    "zookeeper.connect": "router.druid.cluster:2181",
    "druid.selectors.indexing.serviceName": "druid/overlord",
    "druid.discovery.curator.path": "/druid/discovery",
    "druidBeam.taskLocator": "overlord",
    "druidBeam.overlordPollPeriod": "PT5S",
    "druidBeam.basicAuthUser": "userName",
    "druidBeam.basicAuthPass": "password",
    "druid.tls.enable": true,
    "druid.tls.trustStorePassword": "trustStorePwd",
    "druid.tls.trustStorePath": "/Users/me/keystore/keystore.jks"
  }

When trying to write to Druid I get this error

Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundException:  (No such file or directory)
	at com.metamx.tranquility.security.SSLContextMaker$.createSSLContextOption(SSLContextMaker.scala:48)
	at com.metamx.tranquility.druid.DruidBeams$BuilderConfig$$anon$5$$anonfun$34.apply(DruidBeams.scala:1028)
	at com.metamx.tranquility.druid.DruidBeams$BuilderConfig$$anon$5$$anonfun$34.apply(DruidBeams.scala:1025)
	at scala.Option.getOrElse(Option.scala:121)
	at com.metamx.tranquility.druid.DruidBeams$BuilderConfig$$anon$5.<init>(DruidBeams.scala:1025)
	at com.metamx.tranquility.druid.DruidBeams$BuilderConfig.buildAll(DruidBeams.scala:971)
	at com.metamx.tranquility.druid.DruidBeams$Builder.buildBeam(DruidBeams.scala:841)
	at com.metamx.tranquility.druid.DruidBeams$Builder.buildTranquilizer(DruidBeams.scala:935)
	at com.tranquility.test.Main.main(Main.java:37)
Caused by: java.io.FileNotFoundException:  (No such file or directory)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
	at com.metamx.tranquility.security.SSLContextMaker$.createSSLContextOption(SSLContextMaker.scala:33)
	... 8 more

When debugging I found that
https://github.com/druid-io/tranquility/blob/master/core/src/main/scala/com/metamx/tranquility/security/SSLContextMaker.scala#L33 is getting an empty string for tlsTrustStorePath. Also note that the other properties like trustStorePassword are getting populated properly.

Is there an issue in the code or is my configuration incorrect? Any help will be highly appreciated. Thanks!