diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java index 235e4b4b9..db4ac6385 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java @@ -100,14 +100,23 @@ else if (i instanceof CredentialItem.Password) public boolean get(URIish uri, CredentialItem... items) throws UnsupportedCredentialItem { for (CredentialItem i : items) { - if (i instanceof CredentialItem.Username) + if (i instanceof CredentialItem.Username) { ((CredentialItem.Username) i).setValue(username); - - else if (i instanceof CredentialItem.Password) + continue; + } + if (i instanceof CredentialItem.Password) { ((CredentialItem.Password) i).setValue(password); - - else - throw new UnsupportedCredentialItem(uri, i.getPromptText()); + continue; + } + if (i instanceof CredentialItem.StringType) { + if (i.getPromptText().equals("Password: ")) { + ((CredentialItem.StringType) i).setValue(new String( + password)); + continue; + } + } + throw new UnsupportedCredentialItem(uri, i.getClass().getName() + + ":" + i.getPromptText()); } return true; }