val options = Map(
  "collection" -> "{solr_collection_name}",
  "zkhost" -> "{zk_connect_string}",
  "httpBasicAuthUser" -> "{httpBasicAuthUser}",
  "httpBasicAuthPassword" -> "{httpBasicAuthPassword}",
)
val df = spark.read.format("solr")
  .options(options)
  .load
This seems to be more friendly to multi-permission support.
It can be controlled by spark options.