org.eclipse.jgit.transport.RemoteSession Java Examples
The following examples show how to use
org.eclipse.jgit.transport.RemoteSession.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: JGitSshSessionFactory.java From netbeans with Apache License 2.0 | 5 votes |
@Override public synchronized RemoteSession getSession (URIish uri, CredentialsProvider credentialsProvider, FS fs, int tms) throws TransportException { boolean agentUsed = false; String host = uri.getHost(); CredentialItem.StringType identityFile = null; if (credentialsProvider != null) { identityFile = new JGitCredentialsProvider.IdentityFileItem("Identity file for " + host, false); if (credentialsProvider.isInteractive() && credentialsProvider.get(uri, identityFile) && identityFile.getValue() != null) { LOG.log(Level.FINE, "Identity file for {0}: {1}", new Object[] { host, identityFile.getValue() }); //NOI18N agentUsed = setupJSch(fs, host, identityFile, uri, true); LOG.log(Level.FINE, "Setting cert auth for {0}, agent={1}", new Object[] { host, agentUsed }); //NOI18N } } try { LOG.log(Level.FINE, "Trying to connect to {0}, agent={1}", new Object[] { host, agentUsed }); //NOI18N return super.getSession(uri, credentialsProvider, fs, tms); } catch (Exception ex) { // catch rather all exceptions. In case jsch-agent-proxy is broken again we should // at least fall back on key/pasphrase if (agentUsed) { LOG.log(ex instanceof TransportException ? Level.FINE : Level.INFO, null, ex); setupJSch(fs, host, identityFile, uri, false); LOG.log(Level.FINE, "Trying to connect to {0}, agent={1}", new Object[] { host, false }); //NOI18N return super.getSession(uri, credentialsProvider, fs, tms); } else { LOG.log(Level.FINE, "Connection failed: {0}", host); //NOI18N throw ex; } } }
Example #2
Source File: TrileadSessionFactory.java From git-client-plugin with MIT License | 5 votes |
/** {@inheritDoc} */ @Override public RemoteSession getSession(URIish uri, CredentialsProvider credentialsProvider, FS fs, int tms) throws TransportException { try { int p = uri.getPort(); if (p<0) p = 22; Connection con = new Connection(uri.getHost(), p); con.setTCPNoDelay(true); con.connect(); // TODO: host key check boolean authenticated; if (credentialsProvider instanceof SmartCredentialsProvider) { final SmartCredentialsProvider smart = (SmartCredentialsProvider) credentialsProvider; StandardUsernameCredentialsCredentialItem item = new StandardUsernameCredentialsCredentialItem("Credentials for " + uri, false); authenticated = smart.supports(item) && smart.get(uri, item) && SSHAuthenticator.newInstance(con, item.getValue(), uri.getUser()) .authenticate(smart.listener); } else if (credentialsProvider instanceof CredentialsProviderImpl) { CredentialsProviderImpl sshcp = (CredentialsProviderImpl) credentialsProvider; authenticated = SSHAuthenticator.newInstance(con, sshcp.cred).authenticate(sshcp.listener); } else { authenticated = false; } if (!authenticated && con.isAuthenticationComplete()) throw new TransportException("Authentication failure"); return wrap(con); } catch (UnsupportedCredentialItem | IOException | InterruptedException e) { throw new TransportException(uri,"Failed to connect",e); } }
Example #3
Source File: GitSshSessionFactory.java From orion.server with Eclipse Public License 1.0 | 4 votes |
@Override public RemoteSession getSession(URIish uri, CredentialsProvider credentialsProvider, FS fs, int tms) throws TransportException { int port = uri.getPort(); String user = uri.getUser(); 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.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; }