Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 141631 Details for
Bug 262515
[SSH2] An undetermined authentication failure
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Patch proposition
clipboard.txt (text/plain), 12.51 KB, created by
Krzysztof Daniel
on 2009-07-15 08:12:41 EDT
(
hide
)
Description:
Patch proposition
Filename:
MIME Type:
Creator:
Krzysztof Daniel
Created:
2009-07-15 08:12:41 EDT
Size:
12.51 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jsch.core >Index: src/org/eclipse/jsch/internal/core/IConstants.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jsch.core/src/org/eclipse/jsch/internal/core/IConstants.java,v >retrieving revision 1.2 >diff -u -r1.2 IConstants.java >--- src/org/eclipse/jsch/internal/core/IConstants.java 13 Apr 2007 15:00:30 -0000 1.2 >+++ src/org/eclipse/jsch/internal/core/IConstants.java 15 Jul 2009 12:14:19 -0000 >@@ -47,5 +47,6 @@ > public final String PREF_PROXY_AUTH="proxyAuth"; //$NON-NLS-1$ > > public final String PREF_HAS_MIGRATED_SSH2_PREFS="org.eclipse.jsch.core.hasMigratedSsh2Preferences"; //$NON-NLS-1$ >- >+ >+ public final String PREF_PREFERRED_AUTHENTICATION_METHODS="CVSSSH2PreferencePage.PREF_AUTH_METHODS"; //$NON-NLS-1$ > } >Index: src/org/eclipse/jsch/internal/core/Utils.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jsch.core/src/org/eclipse/jsch/internal/core/Utils.java,v >retrieving revision 1.9 >diff -u -r1.9 Utils.java >--- src/org/eclipse/jsch/internal/core/Utils.java 2 Nov 2007 07:15:49 -0000 1.9 >+++ src/org/eclipse/jsch/internal/core/Utils.java 15 Jul 2009 12:14:19 -0000 >@@ -15,7 +15,9 @@ > import org.eclipse.core.net.proxy.IProxyData; > import org.eclipse.core.net.proxy.IProxyService; > import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Platform; > import org.eclipse.core.runtime.Preferences; >+import org.eclipse.core.runtime.preferences.IPreferencesService; > import org.eclipse.core.runtime.preferences.InstanceScope; > > import com.jcraft.jsch.*; >@@ -25,6 +27,10 @@ > * @since 1.0 > */ > public class Utils{ >+ >+ /* should have at least one element */ >+ public static final String[] PREFERRED_AUTH_METHODS=new String[] { >+ "gssapi-with-mic", "publickey", "password", "keyboard-interactive"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ > > public static String loadPrivateKeys(JSch jsch, String current_pkeys){ > Preferences preferences=JSchCorePlugin.getPlugin().getPluginPreferences(); >@@ -78,7 +84,7 @@ > setProxy(session); > Hashtable config=new Hashtable(); > config.put("PreferredAuthentications", //$NON-NLS-1$ >- "gssapi-with-mic,publickey,password,keyboard-interactive"); //$NON-NLS-1$ >+ getEnabledPreferredAuthMethods()); > session.setConfig(config); > return session; > } >@@ -187,5 +193,22 @@ > ssh2Prefs.remove(IConstants.KEY_OLD_PRIVATEKEY); > } > } >+ >+ public static String getEnabledPreferredAuthMethods(){ >+ IPreferencesService service = Platform.getPreferencesService(); >+ >+ String defaultValue = PREFERRED_AUTH_METHODS[0]; >+ for(int i = 1; i < PREFERRED_AUTH_METHODS.length; i++){ >+ defaultValue += "," + PREFERRED_AUTH_METHODS[i]; //$NON-NLS-1$ >+ } >+ return service.getString(JSchCorePlugin.ID, >+ IConstants.PREF_PREFERRED_AUTHENTICATION_METHODS, defaultValue, null); >+ } >+ >+ public static void setEnabledPreferredAuthMethods(String methods){ >+ IPreferencesService service=Platform.getPreferencesService(); >+ service.getRootNode().node(InstanceScope.SCOPE).node(JSchCorePlugin.ID).put( >+ IConstants.PREF_PREFERRED_AUTHENTICATION_METHODS, methods); >+ } > > } >#P org.eclipse.jsch.ui >Index: src/org/eclipse/jsch/internal/ui/Messages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/Messages.java,v >retrieving revision 1.5 >diff -u -r1.5 Messages.java >--- src/org/eclipse/jsch/internal/ui/Messages.java 14 Apr 2008 16:35:30 -0000 1.5 >+++ src/org/eclipse/jsch/internal/ui/Messages.java 15 Jul 2009 12:14:22 -0000 >@@ -81,6 +81,7 @@ > public static String CVSSSH2PreferencePage_134; > public static String CVSSSH2PreferencePage_135; > public static String CVSSSH2PreferencePage_136; >+ public static String CVSSSH2PreferencePage_137; > public static String CVSSSH2PreferencePage_138; > public static String CVSSSH2PreferencePage_139; > public static String KeyboardInteractiveDialog_0; >Index: src/org/eclipse/jsch/internal/ui/messages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/messages.properties,v >retrieving revision 1.7 >diff -u -r1.7 messages.properties >--- src/org/eclipse/jsch/internal/ui/messages.properties 26 Jan 2009 11:33:14 -0000 1.7 >+++ src/org/eclipse/jsch/internal/ui/messages.properties 15 Jul 2009 12:14:22 -0000 >@@ -71,6 +71,7 @@ > CVSSSH2PreferencePage_134=Hostname > CVSSSH2PreferencePage_135=Type > CVSSSH2PreferencePage_136=Fingerprint >+CVSSSH2PreferencePage_137=&Authentication Methods > CVSSSH2PreferencePage_138=&Remove > CVSSSH2PreferencePage_139=Keys of known hosts: > UserInfoPrompter_0=SSH2 Message >Index: src/org/eclipse/jsch/internal/ui/preference/PreferencePage.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/preference/PreferencePage.java,v >retrieving revision 1.6 >diff -u -r1.6 PreferencePage.java >--- src/org/eclipse/jsch/internal/ui/preference/PreferencePage.java 2 Nov 2007 07:15:47 -0000 1.6 >+++ src/org/eclipse/jsch/internal/ui/preference/PreferencePage.java 15 Jul 2009 12:14:22 -0000 >@@ -12,30 +12,78 @@ > *******************************************************************************/ > package org.eclipse.jsch.internal.ui.preference; > >-import java.io.*; >+import java.io.ByteArrayInputStream; >+import java.io.ByteArrayOutputStream; >+import java.io.File; >+import java.io.IOException; >+import java.util.Arrays; >+import java.util.HashSet; > import java.util.Iterator; >+import java.util.Set; > >-import org.eclipse.core.runtime.*; >-import org.eclipse.jface.dialogs.*; >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.core.runtime.Preferences; > import org.eclipse.jface.dialogs.Dialog; >-import org.eclipse.jface.viewers.*; >+import org.eclipse.jface.dialogs.IDialogConstants; >+import org.eclipse.jface.dialogs.MessageDialog; >+import org.eclipse.jface.viewers.ColumnWeightData; >+import org.eclipse.jface.viewers.IStructuredContentProvider; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.jface.viewers.ITableLabelProvider; >+import org.eclipse.jface.viewers.LabelProvider; >+import org.eclipse.jface.viewers.TableLayout; >+import org.eclipse.jface.viewers.TableViewer; >+import org.eclipse.jface.viewers.Viewer; > import org.eclipse.jsch.core.IJSchLocation; > import org.eclipse.jsch.core.IJSchService; >-import org.eclipse.jsch.internal.core.*; >+import org.eclipse.jsch.internal.core.IConstants; >+import org.eclipse.jsch.internal.core.JSchCorePlugin; >+import org.eclipse.jsch.internal.core.Utils; > import org.eclipse.jsch.internal.ui.JSchUIPlugin; > import org.eclipse.jsch.internal.ui.Messages; > import org.eclipse.osgi.util.NLS; > import org.eclipse.swt.SWT; > import org.eclipse.swt.custom.BusyIndicator; > import org.eclipse.swt.custom.TableEditor; >-import org.eclipse.swt.events.*; >+import org.eclipse.swt.events.FocusEvent; >+import org.eclipse.swt.events.FocusListener; >+import org.eclipse.swt.events.ModifyEvent; >+import org.eclipse.swt.events.ModifyListener; >+import org.eclipse.swt.events.SelectionAdapter; >+import org.eclipse.swt.events.SelectionEvent; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.layout.GridData; > import org.eclipse.swt.layout.GridLayout; >-import org.eclipse.swt.widgets.*; >-import org.eclipse.ui.*; >- >-import com.jcraft.jsch.*; >+import org.eclipse.swt.widgets.Button; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.DirectoryDialog; >+import org.eclipse.swt.widgets.Display; >+import org.eclipse.swt.widgets.Event; >+import org.eclipse.swt.widgets.FileDialog; >+import org.eclipse.swt.widgets.Label; >+import org.eclipse.swt.widgets.Listener; >+import org.eclipse.swt.widgets.Shell; >+import org.eclipse.swt.widgets.TabFolder; >+import org.eclipse.swt.widgets.TabItem; >+import org.eclipse.swt.widgets.Table; >+import org.eclipse.swt.widgets.TableColumn; >+import org.eclipse.swt.widgets.TableItem; >+import org.eclipse.swt.widgets.Text; >+import org.eclipse.ui.IWorkbench; >+import org.eclipse.ui.IWorkbenchPreferencePage; >+import org.eclipse.ui.PlatformUI; >+ >+import com.jcraft.jsch.Channel; >+import com.jcraft.jsch.ChannelSftp; >+import com.jcraft.jsch.HostKey; >+import com.jcraft.jsch.HostKeyRepository; >+import com.jcraft.jsch.JSch; >+import com.jcraft.jsch.JSchException; >+import com.jcraft.jsch.KeyPair; >+import com.jcraft.jsch.Session; >+import com.jcraft.jsch.SftpATTRS; >+import com.jcraft.jsch.SftpException; > > public class PreferencePage extends org.eclipse.jface.preference.PreferencePage > implements IWorkbenchPreferencePage{ >@@ -93,6 +141,10 @@ > tabItem=new TabItem(tabFolder, SWT.NONE); > tabItem.setText(Messages.CVSSSH2PreferencePage_133); > tabItem.setControl(createHostKeyManagementPage(tabFolder)); >+ >+ tabItem=new TabItem(tabFolder, SWT.NONE); >+ tabItem.setText(Messages.CVSSSH2PreferencePage_137); >+ tabItem.setControl(createPreferredAuthenticationPage(tabFolder)); > > initControls(); > >@@ -715,6 +767,8 @@ > private TableViewer viewer; > private Button removeHostKeyButton; > >+ private Table preferedAuthMethodTable; >+ > class TableLabelProvider extends LabelProvider implements ITableLabelProvider{ > public String getColumnText(Object element, int columnIndex){ > HostKey entry=(HostKey)element; >@@ -840,6 +894,56 @@ > > return group; > } >+ >+ private Control createPreferredAuthenticationPage(Composite parent){ >+ Composite root = new Composite(parent, SWT.NONE); >+ GridLayout layout=new GridLayout(); >+ layout.marginHeight=convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); >+ layout.marginWidth=convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); >+ layout.verticalSpacing=convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); >+ layout.horizontalSpacing=convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); >+ root.setLayout(layout); >+ >+ Label label=new Label(root, SWT.NONE); >+ label.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false)); >+ label.setText("Select preferred authentication methods"); //$NON-NLS-1$ >+ >+ preferedAuthMethodTable=new Table(root, SWT.CHECK | SWT.BORDER); >+ GridData layoutData=new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false); >+ preferedAuthMethodTable.setLayoutData(layoutData); >+ layoutData.minimumHeight = 150; >+ layoutData.minimumWidth = 200; >+ String[] methods = Utils.getEnabledPreferredAuthMethods().split(","); //$NON-NLS-1$ >+ Set smethods = new HashSet(Arrays.asList(methods)); >+ >+ for(int i=0; i<Utils.PREFERRED_AUTH_METHODS.length; i++){ >+ TableItem tableItem= new TableItem(preferedAuthMethodTable, SWT.NONE); >+ tableItem.setText(0, Utils.PREFERRED_AUTH_METHODS[i]); >+ if(smethods.contains(Utils.PREFERRED_AUTH_METHODS[i])){ >+ tableItem.setChecked(true); >+ } >+ } >+ preferedAuthMethodTable.addSelectionListener(new SelectionAdapter(){ >+ >+ public void widgetSelected(SelectionEvent e){ >+ boolean anySelected = false; >+ for(int i = 0; i < preferedAuthMethodTable.getItemCount(); i++){ >+ anySelected |= preferedAuthMethodTable.getItem(i).getChecked(); >+ } >+ >+ if(anySelected){ >+ setErrorMessage(null); >+ setValid(true); >+ } >+ else{ >+ setErrorMessage("You must select at least one authentication method."); //$NON-NLS-1$ >+ setValid(false); >+ } >+ } >+ }); >+ >+ return root; >+ } > > void handleSelection(){ > boolean empty=viewer.getSelection().isEmpty(); >@@ -975,6 +1079,19 @@ > > public boolean performOk(){ > boolean result=super.performOk(); >+ String selected = null; >+ for(int i = 0; i < preferedAuthMethodTable.getItemCount(); i++){ >+ TableItem item=preferedAuthMethodTable.getItem(i); >+ if(item.getChecked()){ >+ if(selected==null){ >+ selected=item.getText(); >+ } >+ else{ >+ selected+=","+item.getText(); //$NON-NLS-1$ >+ } >+ } >+ } >+ Utils.setEnabledPreferredAuthMethods(selected); > if(result){ > setErrorMessage(null); > String home=ssh2HomeText.getText();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 262515
:
123854
|
141630
|
141631
|
141632
|
141995
|
141996
|
141997