Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: AW: [geclipse-dev] GSISSH

Hi

> [...]
>
> On the other hand if we manage to push your changes to the upstream author
> they will end up in the Orbit bundle used by Eclipse... :)
> We could write them an email (they welcome suggestions etc in
> jsch@xxxxxxxxxx) and ask.
>   How does/would your code connect to Globus? is it still possible to have
> your modified jsch plugin and use the other auth mechanisms even if you
> don't have any globus library around?

I terms of adding the functionality not many changes where necessary. I 
basically took the class for kerberos authentication and created one for GSI 
basing on that one (since both use the gssapi).

All other changes where necessary for getting that added to jsch. The next 
thing I had to change was the UserAuthGSSAPIwithMIC class that checks which 
OIDs (Object IDs i.e. which gssapi auth types) are supported by the server and 
the client and tries those which are supported by both. I had to change that 
class since all supported OIDs (only the kerberos in the original version) are 
listed in an array in there. And there is also a 2nd array which contains 
Strings (corresponding to the OIDs in the 1st array) that are used as a key to 
look the up the name (also a String) of the class implementing the specific 
gssapi authentication method in a hash map.
Then I changed the JSch class in which the hash map is filled (I added an 
entry there which defines the name of the class I added to be used for the gsi 
auth method) (This could also be done by some other class by calling the 
setConfig() method of the JSch class, but due to the org.eclipse.jsch plugin I 
have no direct access to the JSch class).

Adding that to the upstream version is somewhat difficult, the GSI specific 
class has a ton of dependencies (org.globus, eu.geclipse.core, 
eu.geclipse.core.reporting, eu.geclipse.globus, org.eclipse.core.runtime, 
maybe some others too). The other stuff is just there to add it to the list of 
available auth mechanisms.

Because of the dependencies I guess it is no option to put the GSI specific 
class into the jsch plugin.
The best way would be to somehow register the GSI specific class in the jsch 
plugin from another plugin outside, but this currently not possible for 
several reasons:
* The OIDs and the keys of the implementing classes for the hash map are
  listed directly in the GSSAPI class.
* Only the class names are in the hash map, and they are used to create
  instances (using reflection) i.e. the jsch plugin classloader is used for
  trying to create an instance, which will fail if the class is not in the
  same plugin


Cheers,
Thomas




Back to the top