diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/CredentialsProvider.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/CredentialsProvider.java index d2130ad30..ca83c6904 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/CredentialsProvider.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/CredentialsProvider.java @@ -63,6 +63,23 @@ * @see UsernamePasswordCredentialsProvider */ public abstract class CredentialsProvider { + private static volatile CredentialsProvider defaultProvider; + + /** @return the default credentials provider, or null. */ + public static CredentialsProvider getDefault() { + return defaultProvider; + } + + /** + * Set the default credentials provider. + * + * @param p + * the new default provider, may be null to select no default. + */ + public static void setDefault(CredentialsProvider p) { + defaultProvider = p; + } + /** * Check if the provider can supply the necessary {@link CredentialItem}s. * diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java index 5895f7f37..69eea0c22 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java @@ -577,6 +577,7 @@ protected Transport(final Repository local, final URIish uri) { this.local = local; this.uri = uri; this.checkFetchedObjects = tc.isFsckObjects(); + this.credentialsProvider = CredentialsProvider.getDefault(); } /**