diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2009-10-31 19:42:01 -0700 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2009-11-02 17:55:55 -0800 |
commit | 27a497f83e683d384d379ee75570f8c25a7aa624 (patch) | |
tree | e2dccf16cb25c1cf8d738f011cbc9543ac3f1747 /org.eclipse.jgit | |
parent | 9108035763f7d9504671bc9bbddfb467100095e7 (diff) | |
download | jgit-27a497f83e683d384d379ee75570f8c25a7aa624.tar.gz jgit-27a497f83e683d384d379ee75570f8c25a7aa624.zip |
Move AWT based SSH authenticator to ui bundle
This way SWT based applications don't wind up loading this AWT
based code when using SSH.
Change-Id: I9080f3dd029c2a087e6b687480018997cc5c5d23
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'org.eclipse.jgit')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/transport/DefaultSshSessionFactory.java | 120 |
1 files changed, 5 insertions, 115 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/DefaultSshSessionFactory.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/DefaultSshSessionFactory.java index 6ff3d4b2f3..53c1a2ce3a 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/DefaultSshSessionFactory.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/DefaultSshSessionFactory.java @@ -1,4 +1,6 @@ /* + * Copyright (C) 2009, Constantine Plotnikov <constantine.plotnikov@gmail.com> + * Copyright (C) 2009, Google Inc. * Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dewire.com> * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> * and other copyright owners as documented in the project's IP log. @@ -44,20 +46,7 @@ package org.eclipse.jgit.transport; -import java.awt.Container; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; - -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JPasswordField; -import javax.swing.JTextField; - import com.jcraft.jsch.Session; -import com.jcraft.jsch.UIKeyboardInteractive; -import com.jcraft.jsch.UserInfo; /** * Loads known hosts and private keys from <code>$HOME/.ssh</code>. @@ -66,110 +55,11 @@ import com.jcraft.jsch.UserInfo; * compatibility necessary to match OpenSSH, a popular implementation of SSH * used by C Git. * <p> - * If user interactivity is required by SSH (e.g. to obtain a password) AWT is - * used to display a password input field to the end-user. + * If user interactivity is required by SSH (e.g. to obtain a password), the + * connection will immediately fail. */ class DefaultSshSessionFactory extends SshConfigSessionFactory { protected void configure(final OpenSshConfig.Host hc, final Session session) { - if (!hc.isBatchMode()) - session.setUserInfo(new AWT_UserInfo()); - } - - private static class AWT_UserInfo implements UserInfo, - UIKeyboardInteractive { - private String passwd; - - private String passphrase; - - public void showMessage(final String msg) { - JOptionPane.showMessageDialog(null, msg); - } - - public boolean promptYesNo(final String msg) { - return JOptionPane.showConfirmDialog(null, msg, "Warning", - JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION; - } - - public boolean promptPassword(final String msg) { - passwd = null; - final JPasswordField passwordField = new JPasswordField(20); - final int result = JOptionPane.showConfirmDialog(null, - new Object[] { passwordField }, msg, - JOptionPane.OK_CANCEL_OPTION); - if (result == JOptionPane.OK_OPTION) { - passwd = new String(passwordField.getPassword()); - return true; - } - return false; - } - - public boolean promptPassphrase(final String msg) { - passphrase = null; - final JPasswordField passwordField = new JPasswordField(20); - final int result = JOptionPane.showConfirmDialog(null, - new Object[] { passwordField }, msg, - JOptionPane.OK_CANCEL_OPTION); - if (result == JOptionPane.OK_OPTION) { - passphrase = new String(passwordField.getPassword()); - return true; - } - return false; - } - - public String getPassword() { - return passwd; - } - - public String getPassphrase() { - return passphrase; - } - - public String[] promptKeyboardInteractive(final String destination, - final String name, final String instruction, - final String[] prompt, final boolean[] echo) { - final GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, - 1, 1, GridBagConstraints.NORTHWEST, - GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0); - final Container panel = new JPanel(); - panel.setLayout(new GridBagLayout()); - - gbc.weightx = 1.0; - gbc.gridwidth = GridBagConstraints.REMAINDER; - gbc.gridx = 0; - panel.add(new JLabel(instruction), gbc); - gbc.gridy++; - - gbc.gridwidth = GridBagConstraints.RELATIVE; - - final JTextField[] texts = new JTextField[prompt.length]; - for (int i = 0; i < prompt.length; i++) { - gbc.fill = GridBagConstraints.NONE; - gbc.gridx = 0; - gbc.weightx = 1; - panel.add(new JLabel(prompt[i]), gbc); - - gbc.gridx = 1; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weighty = 1; - if (echo[i]) { - texts[i] = new JTextField(20); - } else { - texts[i] = new JPasswordField(20); - } - panel.add(texts[i], gbc); - gbc.gridy++; - } - - if (JOptionPane.showConfirmDialog(null, panel, destination + ": " - + name, JOptionPane.OK_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) { - String[] response = new String[prompt.length]; - for (int i = 0; i < prompt.length; i++) { - response[i] = texts[i].getText(); - } - return response; - } - return null; // cancel - } + // No additional configuration required. } } |