33import com .databricks .sdk .core .oauth .AzureServicePrincipalCredentialsProvider ;
44import com .databricks .sdk .core .oauth .ExternalBrowserCredentialsProvider ;
55import com .databricks .sdk .core .oauth .OAuthM2MServicePrincipalCredentialsProvider ;
6+ import java .util .ArrayList ;
67import java .util .Arrays ;
78import java .util .List ;
89import org .slf4j .Logger ;
1112public class DefaultCredentialsProvider implements CredentialsProvider {
1213 private static final Logger LOG = LoggerFactory .getLogger (DefaultCredentialsProvider .class );
1314
14- private List <CredentialsProvider > providers ;
15+ private static final List <Class <?>> providerClasses =
16+ Arrays .asList (
17+ PatCredentialsProvider .class ,
18+ BasicCredentialsProvider .class ,
19+ OAuthM2MServicePrincipalCredentialsProvider .class ,
20+ AzureServicePrincipalCredentialsProvider .class ,
21+ AzureCliCredentialsProvider .class ,
22+ ExternalBrowserCredentialsProvider .class ,
23+ DatabricksCliCredentialsProvider .class ,
24+ NotebookNativeCredentialsProvider .class ,
25+ GoogleCredentialsCredentialsProvider .class ,
26+ GoogleIdCredentialsProvider .class );
27+
28+ private final List <CredentialsProvider > providers ;
1529
1630 private String authType = "default" ;
1731
@@ -20,18 +34,20 @@ public String authType() {
2034 }
2135
2236 public DefaultCredentialsProvider () {
23- providers =
24- Arrays .asList (
25- new PatCredentialsProvider (),
26- new BasicCredentialsProvider (),
27- new OAuthM2MServicePrincipalCredentialsProvider (),
28- new AzureServicePrincipalCredentialsProvider (),
29- new AzureCliCredentialsProvider (),
30- new ExternalBrowserCredentialsProvider (),
31- new DatabricksCliCredentialsProvider (),
32- new NotebookNativeCredentialsProvider (),
33- new GoogleCredentialsCredentialsProvider (),
34- new GoogleIdCredentialsProvider ());
37+ providers = new ArrayList <>();
38+ for (Class <?> clazz : providerClasses ) {
39+ try {
40+ providers .add ((CredentialsProvider ) clazz .newInstance ());
41+ } catch (NoClassDefFoundError | InstantiationException | IllegalAccessException e ) {
42+ LOG .warn (
43+ "Failed to instantiate credentials provider: "
44+ + clazz .getName ()
45+ + ", skipping. Cause: "
46+ + e .getClass ().getCanonicalName ()
47+ + ": "
48+ + e .getMessage ());
49+ }
50+ }
3551 }
3652
3753 @ Override
0 commit comments