From a53a18e988714cd87934d1a7e29b3331b37542a8 Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Wed, 26 Mar 2014 23:16:36 +0100 Subject: [PATCH] Ensure that stored credentials aren't reset too early Some commands are started without showing a dialog allowing to enter credentials if needed. Hence we need to tolerate one failing HTTP authentication to trigger loading credentials from the secure store. Hence we should not immediately reset the stored credentials if the first attempt to authenticate fails. Bug: 431209 Change-Id: I1b9fa34c3d70be226bb1c59c9ebe995998d29bc8 Signed-off-by: Matthias Sohn --- .../src/org/eclipse/jgit/transport/TransportHttp.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java index 5885e7b52..83ad971f7 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java @@ -472,13 +472,13 @@ public class TransportHttp extends HttpTransport implements WalkTransport, throw new TransportException(uri, MessageFormat.format( JGitText.get().authenticationNotSupported, uri)); CredentialsProvider credentialsProvider = getCredentialsProvider(); + if (authAttempts > 1) + credentialsProvider.reset(uri); if (3 < authAttempts || !authMethod.authorize(uri, credentialsProvider)) { - credentialsProvider.reset(uri); throw new TransportException(uri, JGitText.get().notAuthorized); } - credentialsProvider.reset(uri); authAttempts++; continue;