gaborgsomogyi commented on a change in pull request #29964:
URL: https://github.com/apache/spark/pull/29964#discussion_r501578769



##########
File path: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/ConnectionProvider.scala
##########
@@ -22,12 +22,15 @@ import java.util.ServiceLoader
 
 import scala.collection.mutable
 
+import org.apache.spark.{SparkConf, SparkEnv}
 import org.apache.spark.internal.Logging
 import org.apache.spark.security.SecurityConfigurationLock
 import org.apache.spark.sql.jdbc.JdbcConnectionProvider
 import org.apache.spark.util.Utils
 
 private[jdbc] object ConnectionProvider extends Logging {
+  private val providerEnabledConfig = 
"spark.security.jdbc.connection.provider.%s.enabled"

Review comment:
       It makes sense to make it SQL like so adapting. What I think however we 
need blacklist and not whitelist. Having a blacklist doesn't expect any 
configuration from user when new provider added.

##########
File path: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/ConnectionProvider.scala
##########
@@ -46,8 +49,13 @@ private[jdbc] object ConnectionProvider extends Logging {
           logError(s"Failed to load built in provider.", t)
       }
     }
-    // Seems duplicate but it's needed for Scala 2.13
-    providers.toSeq
+
+    // toSeq seems duplicate but it's needed for Scala 2.13
+    val sparkConf = SparkEnv.get.conf
+    providers.filter { p =>
+      val key = providerEnabledConfig.format(p.name)
+      sparkConf.getOption(key).forall(_.toBoolean)

Review comment:
       Adding more descriptive message.

##########
File path: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/ConnectionProvider.scala
##########
@@ -22,12 +22,15 @@ import java.util.ServiceLoader
 
 import scala.collection.mutable
 
+import org.apache.spark.{SparkConf, SparkEnv}
 import org.apache.spark.internal.Logging
 import org.apache.spark.security.SecurityConfigurationLock
 import org.apache.spark.sql.jdbc.JdbcConnectionProvider
 import org.apache.spark.util.Utils
 
 private[jdbc] object ConnectionProvider extends Logging {
+  private val providerEnabledConfig = 
"spark.security.jdbc.connection.provider.%s.enabled"

Review comment:
       Just changed it.

##########
File path: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/ConnectionProvider.scala
##########
@@ -46,8 +49,13 @@ private[jdbc] object ConnectionProvider extends Logging {
           logError(s"Failed to load built in provider.", t)
       }
     }
-    // Seems duplicate but it's needed for Scala 2.13
-    providers.toSeq
+
+    // toSeq seems duplicate but it's needed for Scala 2.13

Review comment:
       Fixed.

##########
File path: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/ConnectionProvider.scala
##########
@@ -46,8 +49,13 @@ private[jdbc] object ConnectionProvider extends Logging {
           logError(s"Failed to load built in provider.", t)
       }
     }
-    // Seems duplicate but it's needed for Scala 2.13
-    providers.toSeq
+
+    // toSeq seems duplicate but it's needed for Scala 2.13
+    val sparkConf = SparkEnv.get.conf
+    providers.filter { p =>
+      val key = providerEnabledConfig.format(p.name)
+      sparkConf.getOption(key).forall(_.toBoolean)

Review comment:
       Code changed so not needed.

##########
File path: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/DB2ConnectionProvider.scala
##########
@@ -28,6 +28,8 @@ import 
org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions
 private[sql] class DB2ConnectionProvider extends SecureConnectionProvider {
   override val driverClass = "com.ibm.db2.jcc.DB2Driver"
 
+  override def name: String = "db2"

Review comment:
       Fixed.

##########
File path: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/ConnectionProvider.scala
##########
@@ -46,8 +47,10 @@ private[jdbc] object ConnectionProvider extends Logging {
           logError(s"Failed to load built in provider.", t)
       }
     }
-    // Seems duplicate but it's needed for Scala 2.13
-    providers.toSeq
+
+    val disabledProviders = 
SQLConf.get.disabledJdbcConnectionProviders.split(",")

Review comment:
       Changed, however I've taken this solution from existing params. After 
this I'm going to file a PR to change them.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to