Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 262515 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/jsch/internal/ui/Messages.java (+5 lines)
Lines 24-29 Link Here
24
  public static String CVSSSH2ServerConnection_open;
24
  public static String CVSSSH2ServerConnection_open;
25
  public static String CVSSSH2PreferencePage_18;
25
  public static String CVSSSH2PreferencePage_18;
26
  public static String CVSSSH2PreferencePage_19;
26
  public static String CVSSSH2PreferencePage_19;
27
  public static String CVSSSH2PreferencePage_2;
27
  public static String CVSSSH2PreferencePage_20;
28
  public static String CVSSSH2PreferencePage_20;
28
  public static String CVSSSH2PreferencePage_21;
29
  public static String CVSSSH2PreferencePage_21;
29
  public static String CVSSSH2PreferencePage_23;
30
  public static String CVSSSH2PreferencePage_23;
Lines 31-36 Link Here
31
  public static String CVSSSH2PreferencePage_25;
32
  public static String CVSSSH2PreferencePage_25;
32
  public static String CVSSSH2PreferencePage_26;
33
  public static String CVSSSH2PreferencePage_26;
33
  public static String CVSSSH2PreferencePage_27;
34
  public static String CVSSSH2PreferencePage_27;
35
  public static String CVSSSH2PreferencePage_3;
34
  public static String CVSSSH2PreferencePage_30;
36
  public static String CVSSSH2PreferencePage_30;
35
  public static String CVSSSH2PreferencePage_31;
37
  public static String CVSSSH2PreferencePage_31;
36
  public static String CVSSSH2PreferencePage_32;
38
  public static String CVSSSH2PreferencePage_32;
Lines 39-44 Link Here
39
  public static String CVSSSH2PreferencePage_35;
41
  public static String CVSSSH2PreferencePage_35;
40
  public static String CVSSSH2PreferencePage_36;
42
  public static String CVSSSH2PreferencePage_36;
41
  public static String CVSSSH2PreferencePage_39;
43
  public static String CVSSSH2PreferencePage_39;
44
  public static String CVSSSH2PreferencePage_4;
42
  public static String CVSSSH2PreferencePage_41;
45
  public static String CVSSSH2PreferencePage_41;
43
  public static String CVSSSH2PreferencePage_42;
46
  public static String CVSSSH2PreferencePage_42;
44
  public static String CVSSSH2PreferencePage_43;
47
  public static String CVSSSH2PreferencePage_43;
Lines 47-52 Link Here
47
  public static String CVSSSH2PreferencePage_47;
50
  public static String CVSSSH2PreferencePage_47;
48
  public static String CVSSSH2PreferencePage_48;
51
  public static String CVSSSH2PreferencePage_48;
49
  public static String CVSSSH2PreferencePage_49;
52
  public static String CVSSSH2PreferencePage_49;
53
  public static String CVSSSH2PreferencePage_5;
50
  public static String CVSSSH2PreferencePage_50;
54
  public static String CVSSSH2PreferencePage_50;
51
  public static String CVSSSH2PreferencePage_53;
55
  public static String CVSSSH2PreferencePage_53;
52
  public static String CVSSSH2PreferencePage_55;
56
  public static String CVSSSH2PreferencePage_55;
Lines 81-86 Link Here
81
  public static String CVSSSH2PreferencePage_134;
85
  public static String CVSSSH2PreferencePage_134;
82
  public static String CVSSSH2PreferencePage_135;
86
  public static String CVSSSH2PreferencePage_135;
83
  public static String CVSSSH2PreferencePage_136;
87
  public static String CVSSSH2PreferencePage_136;
88
  public static String CVSSSH2PreferencePage_137;
84
  public static String CVSSSH2PreferencePage_138;
89
  public static String CVSSSH2PreferencePage_138;
85
  public static String CVSSSH2PreferencePage_139;
90
  public static String CVSSSH2PreferencePage_139;
86
  public static String KeyboardInteractiveDialog_0;
91
  public static String KeyboardInteractiveDialog_0;
(-)src/org/eclipse/jsch/internal/ui/messages.properties (+5 lines)
Lines 14-19 Link Here
14
CVSSSH2ServerConnection_open=Connecting via SSH to {0}...
14
CVSSSH2ServerConnection_open=Connecting via SSH to {0}...
15
CVSSSH2PreferencePage_18=Configuration options for SSH2:
15
CVSSSH2PreferencePage_18=Configuration options for SSH2:
16
CVSSSH2PreferencePage_19=&General
16
CVSSSH2PreferencePage_19=&General
17
CVSSSH2PreferencePage_2=Up
17
CVSSSH2PreferencePage_20=&Proxy
18
CVSSSH2PreferencePage_20=&Proxy
18
CVSSSH2PreferencePage_21=&Key Management
19
CVSSSH2PreferencePage_21=&Key Management
19
CVSSSH2PreferencePage_23=SSH2 &home:
20
CVSSSH2PreferencePage_23=SSH2 &home:
Lines 21-26 Link Here
21
CVSSSH2PreferencePage_25=P&rivate keys:
22
CVSSSH2PreferencePage_25=P&rivate keys:
22
CVSSSH2PreferencePage_26=Add Pr&ivate Key...
23
CVSSSH2PreferencePage_26=Add Pr&ivate Key...
23
CVSSSH2PreferencePage_27=SSH Home:
24
CVSSSH2PreferencePage_27=SSH Home:
25
CVSSSH2PreferencePage_3=Down
24
CVSSSH2PreferencePage_30=&Enable proxy connection
26
CVSSSH2PreferencePage_30=&Enable proxy connection
25
CVSSSH2PreferencePage_31=Proxy &type:
27
CVSSSH2PreferencePage_31=Proxy &type:
26
CVSSSH2PreferencePage_32=Proxy host add&ress:
28
CVSSSH2PreferencePage_32=Proxy host add&ress:
Lines 29-34 Link Here
29
CVSSSH2PreferencePage_35=Proxy &user name:
31
CVSSSH2PreferencePage_35=Proxy &user name:
30
CVSSSH2PreferencePage_36=Proxy pa&ssword:
32
CVSSSH2PreferencePage_36=Proxy pa&ssword:
31
CVSSSH2PreferencePage_39=&You can paste this public key into the remote authorized_keys file:
33
CVSSSH2PreferencePage_39=&You can paste this public key into the remote authorized_keys file:
34
CVSSSH2PreferencePage_4=Select preferred authentication methods
32
CVSSSH2PreferencePage_41=&Fingerprint:
35
CVSSSH2PreferencePage_41=&Fingerprint:
33
CVSSSH2PreferencePage_42=&Comment:
36
CVSSSH2PreferencePage_42=&Comment:
34
CVSSSH2PreferencePage_43=Passp&hrase:
37
CVSSSH2PreferencePage_43=Passp&hrase:
Lines 37-42 Link Here
37
CVSSSH2PreferencePage_47=The key was not generated.
40
CVSSSH2PreferencePage_47=The key was not generated.
38
CVSSSH2PreferencePage_48=The passphrases entered do not match.
41
CVSSSH2PreferencePage_48=The passphrases entered do not match.
39
CVSSSH2PreferencePage_49=Are you sure you want to save this private key without passphrase protection?
42
CVSSSH2PreferencePage_49=Are you sure you want to save this private key without passphrase protection?
43
CVSSSH2PreferencePage_5=You must select at least one authentication method.
40
CVSSSH2PreferencePage_50={0} does not exist.\nAre you sure you want to create it?
44
CVSSSH2PreferencePage_50={0} does not exist.\nAre you sure you want to create it?
41
CVSSSH2PreferencePage_53={0} has already existed.\nAre you sure you want to overwrite it?
45
CVSSSH2PreferencePage_53={0} has already existed.\nAre you sure you want to overwrite it?
42
CVSSSH2PreferencePage_55=Successfully saved.
46
CVSSSH2PreferencePage_55=Successfully saved.
Lines 71-76 Link Here
71
CVSSSH2PreferencePage_134=Hostname
75
CVSSSH2PreferencePage_134=Hostname
72
CVSSSH2PreferencePage_135=Type
76
CVSSSH2PreferencePage_135=Type
73
CVSSSH2PreferencePage_136=Fingerprint
77
CVSSSH2PreferencePage_136=Fingerprint
78
CVSSSH2PreferencePage_137=&Authentication Methods
74
CVSSSH2PreferencePage_138=&Remove
79
CVSSSH2PreferencePage_138=&Remove
75
CVSSSH2PreferencePage_139=Keys of known hosts:
80
CVSSSH2PreferencePage_139=Keys of known hosts:
76
UserInfoPrompter_0=SSH2 Message
81
UserInfoPrompter_0=SSH2 Message
(-)src/org/eclipse/jsch/internal/ui/preference/PreferencePage.java (-10 / +222 lines)
Lines 12-41 Link Here
12
 *******************************************************************************/
12
 *******************************************************************************/
13
package org.eclipse.jsch.internal.ui.preference;
13
package org.eclipse.jsch.internal.ui.preference;
14
14
15
import java.io.*;
15
import java.io.ByteArrayInputStream;
16
import java.io.ByteArrayOutputStream;
17
import java.io.File;
18
import java.io.IOException;
19
import java.util.Arrays;
20
import java.util.HashSet;
16
import java.util.Iterator;
21
import java.util.Iterator;
22
import java.util.Set;
17
23
18
import org.eclipse.core.runtime.*;
24
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.jface.dialogs.*;
25
import org.eclipse.core.runtime.Preferences;
20
import org.eclipse.jface.dialogs.Dialog;
26
import org.eclipse.jface.dialogs.Dialog;
21
import org.eclipse.jface.viewers.*;
27
import org.eclipse.jface.dialogs.IDialogConstants;
28
import org.eclipse.jface.dialogs.MessageDialog;
29
import org.eclipse.jface.viewers.ColumnWeightData;
30
import org.eclipse.jface.viewers.IStructuredContentProvider;
31
import org.eclipse.jface.viewers.IStructuredSelection;
32
import org.eclipse.jface.viewers.ITableLabelProvider;
33
import org.eclipse.jface.viewers.LabelProvider;
34
import org.eclipse.jface.viewers.TableLayout;
35
import org.eclipse.jface.viewers.TableViewer;
36
import org.eclipse.jface.viewers.Viewer;
22
import org.eclipse.jsch.core.IJSchLocation;
37
import org.eclipse.jsch.core.IJSchLocation;
23
import org.eclipse.jsch.core.IJSchService;
38
import org.eclipse.jsch.core.IJSchService;
24
import org.eclipse.jsch.internal.core.*;
39
import org.eclipse.jsch.internal.core.IConstants;
40
import org.eclipse.jsch.internal.core.JSchCorePlugin;
41
import org.eclipse.jsch.internal.core.Utils;
25
import org.eclipse.jsch.internal.ui.JSchUIPlugin;
42
import org.eclipse.jsch.internal.ui.JSchUIPlugin;
26
import org.eclipse.jsch.internal.ui.Messages;
43
import org.eclipse.jsch.internal.ui.Messages;
27
import org.eclipse.osgi.util.NLS;
44
import org.eclipse.osgi.util.NLS;
28
import org.eclipse.swt.SWT;
45
import org.eclipse.swt.SWT;
29
import org.eclipse.swt.custom.BusyIndicator;
46
import org.eclipse.swt.custom.BusyIndicator;
30
import org.eclipse.swt.custom.TableEditor;
47
import org.eclipse.swt.custom.TableEditor;
31
import org.eclipse.swt.events.*;
48
import org.eclipse.swt.events.FocusEvent;
49
import org.eclipse.swt.events.FocusListener;
50
import org.eclipse.swt.events.ModifyEvent;
51
import org.eclipse.swt.events.ModifyListener;
52
import org.eclipse.swt.events.SelectionAdapter;
53
import org.eclipse.swt.events.SelectionEvent;
32
import org.eclipse.swt.graphics.Image;
54
import org.eclipse.swt.graphics.Image;
33
import org.eclipse.swt.layout.GridData;
55
import org.eclipse.swt.layout.GridData;
34
import org.eclipse.swt.layout.GridLayout;
56
import org.eclipse.swt.layout.GridLayout;
35
import org.eclipse.swt.widgets.*;
57
import org.eclipse.swt.widgets.Button;
36
import org.eclipse.ui.*;
58
import org.eclipse.swt.widgets.Composite;
37
59
import org.eclipse.swt.widgets.Control;
38
import com.jcraft.jsch.*;
60
import org.eclipse.swt.widgets.DirectoryDialog;
61
import org.eclipse.swt.widgets.Display;
62
import org.eclipse.swt.widgets.Event;
63
import org.eclipse.swt.widgets.FileDialog;
64
import org.eclipse.swt.widgets.Label;
65
import org.eclipse.swt.widgets.Listener;
66
import org.eclipse.swt.widgets.Shell;
67
import org.eclipse.swt.widgets.TabFolder;
68
import org.eclipse.swt.widgets.TabItem;
69
import org.eclipse.swt.widgets.Table;
70
import org.eclipse.swt.widgets.TableColumn;
71
import org.eclipse.swt.widgets.TableItem;
72
import org.eclipse.swt.widgets.Text;
73
import org.eclipse.ui.IWorkbench;
74
import org.eclipse.ui.IWorkbenchPreferencePage;
75
import org.eclipse.ui.PlatformUI;
76
77
import com.jcraft.jsch.Channel;
78
import com.jcraft.jsch.ChannelSftp;
79
import com.jcraft.jsch.HostKey;
80
import com.jcraft.jsch.HostKeyRepository;
81
import com.jcraft.jsch.JSch;
82
import com.jcraft.jsch.JSchException;
83
import com.jcraft.jsch.KeyPair;
84
import com.jcraft.jsch.Session;
85
import com.jcraft.jsch.SftpATTRS;
86
import com.jcraft.jsch.SftpException;
39
87
40
public class PreferencePage extends org.eclipse.jface.preference.PreferencePage
88
public class PreferencePage extends org.eclipse.jface.preference.PreferencePage
41
    implements IWorkbenchPreferencePage{
89
    implements IWorkbenchPreferencePage{
Lines 93-98 Link Here
93
    tabItem=new TabItem(tabFolder, SWT.NONE);
141
    tabItem=new TabItem(tabFolder, SWT.NONE);
94
    tabItem.setText(Messages.CVSSSH2PreferencePage_133);
142
    tabItem.setText(Messages.CVSSSH2PreferencePage_133);
95
    tabItem.setControl(createHostKeyManagementPage(tabFolder));
143
    tabItem.setControl(createHostKeyManagementPage(tabFolder));
144
    
145
    tabItem=new TabItem(tabFolder, SWT.NONE);
146
    tabItem.setText(Messages.CVSSSH2PreferencePage_137);
147
    tabItem.setControl(createPreferredAuthenticationPage(tabFolder));
96
148
97
    initControls();
149
    initControls();
98
150
Lines 715-720 Link Here
715
  private TableViewer viewer;
767
  private TableViewer viewer;
716
  private Button removeHostKeyButton;
768
  private Button removeHostKeyButton;
717
769
770
  private Table preferedAuthMethodTable;
771
772
  private Button up;
773
774
  private Button down;
775
718
  class TableLabelProvider extends LabelProvider implements ITableLabelProvider{
776
  class TableLabelProvider extends LabelProvider implements ITableLabelProvider{
719
    public String getColumnText(Object element, int columnIndex){
777
    public String getColumnText(Object element, int columnIndex){
720
      HostKey entry=(HostKey)element;
778
      HostKey entry=(HostKey)element;
Lines 840-845 Link Here
840
898
841
    return group;
899
    return group;
842
  }
900
  }
901
  
902
  private Control createPreferredAuthenticationPage(Composite parent){
903
    Composite root = new Composite(parent, SWT.NONE);
904
    GridLayout layout=new GridLayout();
905
    layout.marginHeight=convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
906
    layout.marginWidth=convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
907
    layout.verticalSpacing=convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
908
    layout.horizontalSpacing=convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
909
    layout.numColumns = 2;
910
    root.setLayout(layout);
911
    
912
    Label label=new Label(root, SWT.NONE);
913
    GridData textLayoutData=new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false);
914
    textLayoutData.horizontalSpan = 2;
915
    label.setLayoutData(textLayoutData);
916
    label.setText(Messages.CVSSSH2PreferencePage_4);
917
    
918
    preferedAuthMethodTable=new Table(root, SWT.CHECK | SWT.BORDER);
919
    GridData layoutData=new GridData(SWT.FILL, SWT.BEGINNING, true, true);
920
    layoutData.verticalSpan = 3;
921
    preferedAuthMethodTable.setLayoutData(layoutData);
922
    layoutData.minimumHeight = 150;
923
    layoutData.minimumWidth = 200;
924
    populateAuthMethods();
925
    
926
    up=new Button(root, SWT.PUSH);
927
    up.setText(Messages.CVSSSH2PreferencePage_2);
928
    up.setEnabled(false);
929
    setButtonLayoutData(up);
930
    
931
    down=new Button(root, SWT.PUSH);
932
    down.setText(Messages.CVSSSH2PreferencePage_3);
933
    down.setEnabled(false);
934
    setButtonLayoutData(down);
935
    
936
    preferedAuthMethodTable.addSelectionListener(new SelectionAdapter(){
937
      
938
      public void widgetSelected(SelectionEvent e){
939
        boolean anySelected = false;
940
        for(int i = 0; i < preferedAuthMethodTable.getItemCount(); i++){
941
          anySelected |= preferedAuthMethodTable.getItem(i).getChecked();
942
        }
943
        
944
        if(anySelected){
945
          setErrorMessage(null);
946
          setValid(true);
947
        }
948
        else{
949
          setErrorMessage(Messages.CVSSSH2PreferencePage_5);
950
          setValid(false);
951
        }
952
        up.setEnabled(preferedAuthMethodTable.getSelectionIndex()>0);
953
        down
954
            .setEnabled(preferedAuthMethodTable.getSelectionIndex()<preferedAuthMethodTable
955
                .getItemCount()-1);
956
      }
957
      
958
    });
959
    up.addSelectionListener(new SelectionAdapter(){
960
961
      public void widgetSelected(SelectionEvent e){
962
        int selectedIndex=preferedAuthMethodTable.getSelectionIndex();
963
        if(selectedIndex == 1){ //this is the last possible swap
964
          up.setEnabled(false);
965
        }
966
        down.setEnabled(true);
967
        TableItem sourceItem = preferedAuthMethodTable.getItem(selectedIndex);
968
        TableItem targetItem = preferedAuthMethodTable.getItem(selectedIndex-1);
969
        
970
        //switch text
971
        String stemp = targetItem.getText();
972
        targetItem.setText(sourceItem.getText());
973
        sourceItem.setText(stemp);
974
        
975
        //switch selection
976
        boolean btemp = targetItem.getChecked();
977
        targetItem.setChecked(sourceItem.getChecked());
978
        sourceItem.setChecked(btemp);
979
        
980
        preferedAuthMethodTable.setSelection(targetItem);
981
      }
982
    });
983
    
984
    down.addSelectionListener(new SelectionAdapter(){
985
986
      public void widgetSelected(SelectionEvent e){
987
        int selectedIndex=preferedAuthMethodTable.getSelectionIndex();
988
        if(selectedIndex == preferedAuthMethodTable.getItemCount()-2){ //this is the last possible swap
989
          down.setEnabled(false);
990
        }
991
        up.setEnabled(true);
992
        TableItem sourceItem = preferedAuthMethodTable.getItem(selectedIndex);
993
        TableItem targetItem = preferedAuthMethodTable.getItem(selectedIndex+1);
994
        
995
        //switch text
996
        String stemp = targetItem.getText();
997
        targetItem.setText(sourceItem.getText());
998
        sourceItem.setText(stemp);
999
        
1000
        //switch selection
1001
        boolean btemp = targetItem.getChecked();
1002
        targetItem.setChecked(sourceItem.getChecked());
1003
        sourceItem.setChecked(btemp);
1004
        
1005
        preferedAuthMethodTable.setSelection(targetItem);
1006
      }
1007
    });
1008
    
1009
    return root;
1010
  }
1011
1012
  private void populateAuthMethods(){
1013
    preferedAuthMethodTable.removeAll();
1014
    String[] methods = Utils.getEnabledPreferredAuthMethods().split(","); //$NON-NLS-1$
1015
    Set smethods  = new HashSet(Arrays.asList(methods));
1016
    
1017
    String[] order = Utils.getMethodsOrder().split(","); //$NON-NLS-1$
1018
    
1019
    for(int i=0; i<order.length; i++){
1020
      TableItem tableItem= new TableItem(preferedAuthMethodTable, SWT.NONE);
1021
      tableItem.setText(0, order[i]);
1022
      if(smethods.contains(order[i])){
1023
        tableItem.setChecked(true);
1024
      }
1025
    }
1026
  }
843
1027
844
  void handleSelection(){
1028
  void handleSelection(){
845
    boolean empty=viewer.getSelection().isEmpty();
1029
    boolean empty=viewer.getSelection().isEmpty();
Lines 953-958 Link Here
953
    keyPassphrase2Text.setEnabled(enable);
1137
    keyPassphrase2Text.setEnabled(enable);
954
    keyExport.setEnabled(enable);
1138
    keyExport.setEnabled(enable);
955
    saveKeyPair.setEnabled(enable);
1139
    saveKeyPair.setEnabled(enable);
1140
    populateAuthMethods();
1141
    up.setEnabled(false);
1142
    down.setEnabled(false);
956
  }
1143
  }
957
1144
958
  public void init(IWorkbench workbench){
1145
  public void init(IWorkbench workbench){
Lines 975-980 Link Here
975
1162
976
  public boolean performOk(){
1163
  public boolean performOk(){
977
    boolean result=super.performOk();
1164
    boolean result=super.performOk();
1165
    storeAuthenticationMethodSettings();
978
    if(result){
1166
    if(result){
979
      setErrorMessage(null);
1167
      setErrorMessage(null);
980
      String home=ssh2HomeText.getText();
1168
      String home=ssh2HomeText.getText();
Lines 1003-1014 Link Here
1003
    return result;
1191
    return result;
1004
  }
1192
  }
1005
1193
1194
  private void storeAuthenticationMethodSettings(){
1195
    String selected = null;
1196
    String order = null;
1197
    for(int i = 0; i < preferedAuthMethodTable.getItemCount(); i++){
1198
      TableItem item=preferedAuthMethodTable.getItem(i);
1199
      if(item.getChecked()){
1200
        if(selected==null){
1201
          selected=item.getText();
1202
        }
1203
        else{
1204
          selected+=","+item.getText(); //$NON-NLS-1$
1205
        }
1206
      }
1207
      if(order == null){
1208
        order = item.getText();
1209
      } else {
1210
        order += "," + item.getText(); //$NON-NLS-1$
1211
      }
1212
    }
1213
    Utils.setEnabledPreferredAuthMethods(selected, order);
1214
  }
1215
1006
  public void performApply(){
1216
  public void performApply(){
1007
    performOk();
1217
    performOk();
1008
  }
1218
  }
1009
1219
1010
  protected void performDefaults(){
1220
  protected void performDefaults(){
1011
    super.performDefaults();
1221
    super.performDefaults();
1222
    Utils.setEnabledPreferredAuthMethods(Utils.getDefaultAuthMethods(), Utils
1223
        .getDefaultAuthMethods());
1012
    Preferences preferences=JSchCorePlugin.getPlugin().getPluginPreferences();
1224
    Preferences preferences=JSchCorePlugin.getPlugin().getPluginPreferences();
1013
    ssh2HomeText
1225
    ssh2HomeText
1014
        .setText(preferences
1226
        .setText(preferences
(-)src/org/eclipse/jsch/internal/core/IConstants.java (-1 / +3 lines)
Lines 47-51 Link Here
47
  public final String PREF_PROXY_AUTH="proxyAuth"; //$NON-NLS-1$
47
  public final String PREF_PROXY_AUTH="proxyAuth"; //$NON-NLS-1$
48
48
49
  public final String PREF_HAS_MIGRATED_SSH2_PREFS="org.eclipse.jsch.core.hasMigratedSsh2Preferences"; //$NON-NLS-1$
49
  public final String PREF_HAS_MIGRATED_SSH2_PREFS="org.eclipse.jsch.core.hasMigratedSsh2Preferences"; //$NON-NLS-1$
50
50
  
51
  public static final String PREF_PREFERRED_AUTHENTICATION_METHODS="CVSSSH2PreferencePage.PREF_AUTH_METHODS"; //$NON-NLS-1$
52
  public static final String PREF_PREFERRED_AUTHENTICATION_METHODS_ORDER="CVSSSH2PreferencePage.PREF_AUTH_METHODS_ORDER"; //$NON-NLS-1$
51
}
53
}
(-)src/org/eclipse/jsch/internal/core/Utils.java (-1 / +35 lines)
Lines 15-21 Link Here
15
import org.eclipse.core.net.proxy.IProxyData;
15
import org.eclipse.core.net.proxy.IProxyData;
16
import org.eclipse.core.net.proxy.IProxyService;
16
import org.eclipse.core.net.proxy.IProxyService;
17
import org.eclipse.core.runtime.IStatus;
17
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.Platform;
18
import org.eclipse.core.runtime.Preferences;
19
import org.eclipse.core.runtime.Preferences;
20
import org.eclipse.core.runtime.preferences.IPreferencesService;
19
import org.eclipse.core.runtime.preferences.InstanceScope;
21
import org.eclipse.core.runtime.preferences.InstanceScope;
20
22
21
import com.jcraft.jsch.*;
23
import com.jcraft.jsch.*;
Lines 25-30 Link Here
25
 * @since 1.0
27
 * @since 1.0
26
 */
28
 */
27
public class Utils{
29
public class Utils{
30
  
31
  /* should have at least one element */
32
  private static final String[] PREFERRED_AUTH_METHODS=new String[] {
33
      "gssapi-with-mic", "publickey", "password", "keyboard-interactive"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
34
35
  public static String getDefaultAuthMethods(){
36
    String defaultValue = PREFERRED_AUTH_METHODS[0];
37
    for(int i = 1; i < PREFERRED_AUTH_METHODS.length; i++){
38
      defaultValue += "," + PREFERRED_AUTH_METHODS[i]; //$NON-NLS-1$
39
    }
40
    return defaultValue;
41
  }
28
42
29
  public static String loadPrivateKeys(JSch jsch, String current_pkeys){
43
  public static String loadPrivateKeys(JSch jsch, String current_pkeys){
30
    Preferences preferences=JSchCorePlugin.getPlugin().getPluginPreferences();
44
    Preferences preferences=JSchCorePlugin.getPlugin().getPluginPreferences();
Lines 78-84 Link Here
78
    setProxy(session);
92
    setProxy(session);
79
    Hashtable config=new Hashtable();
93
    Hashtable config=new Hashtable();
80
    config.put("PreferredAuthentications", //$NON-NLS-1$ 
94
    config.put("PreferredAuthentications", //$NON-NLS-1$ 
81
        "gssapi-with-mic,publickey,password,keyboard-interactive"); //$NON-NLS-1$ 
95
        getEnabledPreferredAuthMethods()); 
82
    session.setConfig(config);
96
    session.setConfig(config);
83
    return session;
97
    return session;
84
  }
98
  }
Lines 187-191 Link Here
187
      ssh2Prefs.remove(IConstants.KEY_OLD_PRIVATEKEY);
201
      ssh2Prefs.remove(IConstants.KEY_OLD_PRIVATEKEY);
188
    }
202
    }
189
  }
203
  }
204
  
205
  public static String getEnabledPreferredAuthMethods(){
206
    IPreferencesService service = Platform.getPreferencesService();
207
    return service.getString(JSchCorePlugin.ID,
208
        IConstants.PREF_PREFERRED_AUTHENTICATION_METHODS, getDefaultAuthMethods(), null);
209
  }
210
211
  public static String getMethodsOrder(){
212
    IPreferencesService service = Platform.getPreferencesService();
213
    return service.getString(JSchCorePlugin.ID,
214
        IConstants.PREF_PREFERRED_AUTHENTICATION_METHODS_ORDER, getDefaultAuthMethods(), null);
215
  }
216
  
217
  public static void setEnabledPreferredAuthMethods(String methods, String order){
218
    IPreferencesService service=Platform.getPreferencesService();
219
    service.getRootNode().node(InstanceScope.SCOPE).node(JSchCorePlugin.ID).put(
220
        IConstants.PREF_PREFERRED_AUTHENTICATION_METHODS, methods);
221
    service.getRootNode().node(InstanceScope.SCOPE).node(JSchCorePlugin.ID).put(
222
        IConstants.PREF_PREFERRED_AUTHENTICATION_METHODS_ORDER, order);}
223
  
190
224
191
}
225
}

Return to bug 262515