AuthCallbackCase (@NotNull final String errText, @Nullable final Url url, boolean isUnderTerminal) { List<AuthCallbackCase> authCases = new ArrayList<>(); if (isUnderTerminal) { // Subversion client does not prompt for proxy credentials (just fails with error) even in terminal mode. So we handle this case the // same way as in non-terminal mode - repeat command with new credentials. // NOTE: We could also try getting proxy credentials from user in advance (by issuing separate request and asking for credentials if // NOTE: required) - not to execute same command several times like it is currently for all other cases in terminal mode. But such // NOTE: behaviour is not mandatory for now - so we just use "repeat command" logic. authCases.add(new ProxyCallback(myAuthenticationService, url)); // Same situation (described above) as with proxy settings is here. authCases.add(new TwoWaySslCallback(myAuthenticationService, url)); } else { authCases.add(new CertificateCallbackCase(myAuthenticationService, url)); authCases.add(new ProxyCallback(myAuthenticationService, url)); authCases.add(new TwoWaySslCallback(myAuthenticationService, url)); authCases.add(new ServerUnavailableCallback(myAuthenticationService, url)); authCases.add(new UsernamePasswordCallback(myAuthenticationService, url)); } return ContainerUtil.find(authCases, authCase -> authCase.canHandle(errText)); }