Example usage for org.eclipse.jgit.transport CredentialsProvider isInteractive

List of usage examples for org.eclipse.jgit.transport CredentialsProvider isInteractive

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport CredentialsProvider isInteractive.

Prototype

public abstract boolean isInteractive();

Source Link

Document

Check if the provider is interactive with the end-user.

Usage

From source file:org.apache.sshd.git.transport.GitSshdSession.java

License:Apache License

public GitSshdSession(URIish uri, CredentialsProvider credentialsProvider, FS fs, int tms)
        throws IOException, InterruptedException {
    String user = uri.getUser();// w  w  w  .jav  a2  s . co m
    final String pass = uri.getPass();
    String host = uri.getHost();
    int port = uri.getPort();
    char[] pass2 = null;

    if (!credentialsProvider.isInteractive()) {
        CredentialItem.Username usrItem = new CredentialItem.Username();
        CredentialItem.Password pwdItem = new CredentialItem.Password();
        if (credentialsProvider.get(uri, usrItem, pwdItem)) {
            if (user == null) {
                user = usrItem.getValue();
            } else if (user.equals(usrItem.getValue())) {
                pass2 = pwdItem.getValue();
            }
        }
    }

    client = createClient();

    client.start();

    session = client.connect(user, host, port).verify(
            PropertyResolverUtils.getLongProperty(client, CONNECT_TIMEOUT_PROP, DEFAULT_CONNECT_TIMEOUT))
            .getSession();
    if (log.isDebugEnabled()) {
        log.debug("Connected to {}:{}", host, port);
    }
    if (pass != null) {
        session.addPasswordIdentity(pass);
    }
    if (pass2 != null) {
        session.addPasswordIdentity(new String(pass2));
    }
    session.auth()
            .verify(PropertyResolverUtils.getLongProperty(session, AUTH_TIMEOUT_PROP, DEFAULT_AUTH_TIMEOUT));
    if (log.isDebugEnabled()) {
        log.debug("Authenticated: {}", session);
    }
}

From source file:org.eclipse.orion.internal.server.filesystem.git.OrionSshSessionFactory.java

License:Open Source License

@Override
public synchronized Session getSession(String user, String pass, String host, int port,
        CredentialsProvider credentialsProvider, FS fs) throws JSchException {
    if (user == null && credentialsProvider instanceof OrionUserCredentialsProvider) {
        OrionUserCredentialsProvider oucp = (OrionUserCredentialsProvider) credentialsProvider;
        CredentialsProvider cp = SshConfigManager.getDefault().getCredentialsProvider(oucp.getOrionUser(),
                oucp.getUri());/*from   www  .j a va 2 s.c o  m*/
        if (cp != null) {
            CredentialItem.Username u = new CredentialItem.Username();
            if (cp.supports(u) && cp.get(oucp.getUri(), u)) {
                user = u.getValue();
            }
        }
    }
    if (port <= 0)
        port = SSH_PORT;

    final Session session = createSession(user, host, port, credentialsProvider);
    if (pass != null)
        session.setPassword(pass);
    if (credentialsProvider != null && !credentialsProvider.isInteractive()) {
        session.setUserInfo(new CredentialsProviderUserInfo(session, credentialsProvider));
    }
    return session;
}

From source file:org.eclipse.orion.server.git.GitSshSessionFactory.java

License:Open Source License

@Override
public RemoteSession getSession(URIish uri, CredentialsProvider credentialsProvider, FS fs, int tms)
        throws TransportException {
    int port = uri.getPort();
    String user = uri.getUser();//from www .  java2s  .  c  o  m
    String pass = uri.getPass();
    if (credentialsProvider instanceof GitCredentialsProvider) {
        if (port <= 0)
            port = SSH_PORT;

        GitCredentialsProvider cp = (GitCredentialsProvider) credentialsProvider;
        if (user == null) {
            CredentialItem.Username u = new CredentialItem.Username();
            if (cp.supports(u) && cp.get(cp.getUri(), u)) {
                user = u.getValue();
            }
        }
        if (pass == null) {
            CredentialItem.Password p = new CredentialItem.Password();
            if (cp.supports(p) && cp.get(cp.getUri(), p)) {
                pass = new String(p.getValue());
            }
        }

        try {
            final SessionHandler session = new SessionHandler(user, uri.getHost(), port, cp.getKnownHosts(),
                    cp.getPrivateKey(), cp.getPublicKey(), cp.getPassphrase());
            if (pass != null)
                session.setPassword(pass);
            if (credentialsProvider != null && !credentialsProvider.isInteractive()) {
                session.setUserInfo(new CredentialsProviderUserInfo(session.getSession(), credentialsProvider));
            }

            session.connect(tms);

            return new JschSession(session.getSession(), uri);
        } catch (JSchException e) {
            throw new TransportException(uri, e.getMessage(), e);
        }
    }
    return null;
}

From source file:org.springframework.cloud.config.server.environment.JGitEnvironmentRepositoryTests.java

License:Apache License

@Test
public void passphraseShouldSetCredentials() throws Exception {
    final String passphrase = "mypassphrase";
    Git mockGit = mock(Git.class);
    MockCloneCommand mockCloneCommand = new MockCloneCommand(mockGit);

    JGitEnvironmentRepository envRepository = new JGitEnvironmentRepository(this.environment);
    envRepository.setGitFactory(new MockGitFactory(mockGit, mockCloneCommand));
    envRepository.setUri("git+ssh://git@somegitserver/somegitrepo");
    envRepository.setBasedir(new File("./mybasedir"));
    envRepository.setPassphrase(passphrase);
    envRepository.setCloneOnStart(true);
    envRepository.afterPropertiesSet();/*ww  w  .  j  ava2s .  com*/

    assertTrue(mockCloneCommand.hasPassphraseCredentialsProvider());

    CredentialsProvider provider = mockCloneCommand.getCredentialsProvider();
    assertFalse(provider.isInteractive());

    CredentialItem.StringType stringCredential = new CredentialItem.StringType(
            PassphraseCredentialsProvider.PROMPT, true);

    assertTrue(provider.supports(stringCredential));
    provider.get(new URIish(), stringCredential);
    assertEquals(stringCredential.getValue(), passphrase);
}

From source file:org.springframework.cloud.config.server.environment.JGitEnvironmentRepositoryTests.java

License:Apache License

@Test
public void gitCredentialsProviderFactoryCreatesPassphraseProvider() throws Exception {
    final String passphrase = "mypassphrase";
    final String gitUri = "git+ssh://git@somegitserver/somegitrepo";
    GitCredentialsProviderFactory credentialsFactory = new GitCredentialsProviderFactory();
    Git mockGit = mock(Git.class);
    MockCloneCommand mockCloneCommand = new MockCloneCommand(mockGit);

    JGitEnvironmentRepository envRepository = new JGitEnvironmentRepository(this.environment);
    envRepository.setGitFactory(new MockGitFactory(mockGit, mockCloneCommand));
    envRepository.setUri(gitUri);//from  w w w. j a  va 2 s. com
    envRepository.setBasedir(new File("./mybasedir"));
    envRepository.setGitCredentialsProvider(credentialsFactory.createFor(gitUri, null, null, passphrase));
    envRepository.setCloneOnStart(true);
    envRepository.afterPropertiesSet();

    assertTrue(mockCloneCommand.hasPassphraseCredentialsProvider());

    CredentialsProvider provider = mockCloneCommand.getCredentialsProvider();
    assertFalse(provider.isInteractive());

    CredentialItem.StringType stringCredential = new CredentialItem.StringType(
            PassphraseCredentialsProvider.PROMPT, true);

    assertTrue(provider.supports(stringCredential));
    provider.get(new URIish(), stringCredential);
    assertEquals(stringCredential.getValue(), passphrase);

}