@@ -25,8 +25,10 @@ import scala.util.Try
2525
2626import com .mapr .web .security .SslConfig .SslConfigScope
2727import com .mapr .web .security .WebSecurityManager
28+ import javax .net .ssl .SSLContext
2829import org .apache .hadoop .conf .Configuration
2930import org .apache .hadoop .fs .Path
31+ import org .apache .spark .internal .Logging
3032import org .eclipse .jetty .util .ssl .SslContextFactory
3133
3234import org .eclipse .jetty .util .ssl .SslContextFactory
@@ -188,6 +190,7 @@ private[spark] object SSLOptions extends Logging {
188190 ns : String ,
189191 defaults : Option [SSLOptions ] = None ): SSLOptions = {
190192 val IsSecurityWebUsing = conf.getBoolean(" spark.maprSecurityWeb.usage" , defaultValue = true )
193+ val defaultSSLKeyStorePassword = " defaultsslpassword"
191194
192195 val enabled = conf.getBoolean(s " $ns.enabled " , defaultValue = defaults.exists(_.enabled))
193196 if (! enabled) {
@@ -199,30 +202,38 @@ private[spark] object SSLOptions extends Logging {
199202 }
200203
201204 val webSecuritySslConfig =
202- Try (WebSecurityManager .getSslConfig(SslConfigScope .SCOPE_CLIENT_ONLY )).toOption
205+ Try (WebSecurityManager .getSslConfig(SslConfigScope .SCOPE_ALL )).recover {
206+ case _ : SecurityException => WebSecurityManager .getSslConfig(SslConfigScope .SCOPE_CLIENT_ONLY )
207+ }.toOption
203208
204209 val newHaoopConf = new Configuration ()
205210 val hadoopConfDir = System .getenv(" hadoop_conf_dir" )
206211 newHaoopConf.addResource(new Path (s " $hadoopConfDir/core-site.xml " ))
207- newHaoopConf.addResource(new Path (s " $hadoopConfDir/ssl-client .xml " ))
212+ newHaoopConf.addResource(new Path (s " $hadoopConfDir/ssl-server .xml " ))
208213
209214 val keyStore = conf.getWithSubstitution(s " $ns.keyStore " ).map(new File (_))
210215 .orElse(defaults.flatMap(_.keyStore))
211216
212217 val keyStorePassword = conf.getWithSubstitution(s " $ns.keyStorePassword " )
213- .orElse(if (IsSecurityWebUsing ) {
218+ .orElse(Try { if (IsSecurityWebUsing ) {
214219 webSecuritySslConfig.map(_.getClientKeystorePassword.mkString)
215220 } else {
216- Option (newHaoopConf.getPassword(" ssl.client.keystore.password" )).map(new String (_))
217- })
221+ Option (new String (newHaoopConf.getPassword(" ssl.client.keystore.password" )))
222+ }}.getOrElse({
223+ logWarning(" SSL keyStore password is not set, using default." )
224+ Option (defaultSSLKeyStorePassword)
225+ }))
218226 .orElse(defaults.flatMap(_.keyStorePassword))
219227
220228 val keyPassword = conf.getWithSubstitution(s " $ns.keyPassword " )
221- .orElse(if (IsSecurityWebUsing ) {
229+ .orElse(Try { if (IsSecurityWebUsing ) {
222230 webSecuritySslConfig.map(_.getClientKeyPassword.mkString)
223231 } else {
224- Option (hadoopConf.getPassword(s " ssl.client.keystore.keypassword " )).map(new String (_))
225- })
232+ Option (new String (newHaoopConf.getPassword(" ssl.client.keystore.keypassword" )))
233+ }}.getOrElse({
234+ logWarning(" SSL key password is not set, using default." )
235+ Option (defaultSSLKeyStorePassword)
236+ }))
226237 .orElse(defaults.flatMap(_.keyPassword))
227238
228239 val keyStoreType = conf.getWithSubstitution(s " $ns.keyStoreType " )
@@ -235,11 +246,14 @@ private[spark] object SSLOptions extends Logging {
235246 .orElse(defaults.flatMap(_.trustStore))
236247
237248 val trustStorePassword = conf.getWithSubstitution(s " $ns.trustStorePassword " )
238- .orElse(if (IsSecurityWebUsing ) {
249+ .orElse(Try { if (IsSecurityWebUsing ) {
239250 webSecuritySslConfig.map(_.getClientTruststorePassword.mkString)
240251 } else {
241- Option (newHaoopConf.getPassword(" ssl.client.truststore.password" )).map(new String (_))
242- })
252+ Option (new String (newHaoopConf.getPassword(" ssl.client.truststore.password" )))
253+ }}.getOrElse({
254+ logWarning(" SSL trustStore password is not set, using default." )
255+ Option (defaultSSLKeyStorePassword)
256+ }))
243257 .orElse(defaults.flatMap(_.trustStorePassword))
244258
245259 val trustStoreType = conf.getWithSubstitution(s " $ns.trustStoreType " )
0 commit comments