Java CoG Kit GSI Terminal Based on Mindterm

From Java CoG Kit

Jump to: navigation, search
  • get in contact with Mike Russel
  • see if CANARIE has made one too
  • Integrate the code in the source forge archive
  • create a downloadable jar file
  • Integrate this in the to be developed configuation component
  • prepare documentation for use and install

Contents

References



Dec 2001

Dear KDI developers/planers:

We have long being talking about how nice it would be to have a GSI SSH
available that could be started right within the Cactus Portal. I am not
sure if this has been done or is somewhere on the radar map. As not only
the Cactus group has asked for this I have thrown together a small
description of initial activities in order to peruse such an activity.
Before I continue to refine this (hopefully with your help) I like to
hear your input on this. As I can see NASA IPG seems to have a similar
requirement. As far as I can see the C version of the GSI SSH would not
fulfill the requirements posed by the Cactus portal. But I like to
verify this with you.

Thanks

Gregor

   
1         Java GSI SSH Shell Campaign

1.1      Background

   
   During the course of the last two years several developer contacted
   the Globus group for the availability of a GSI enabled SSH client that
   can be started out from a portal. These groups include the Cactus
   group and the NASA IPG group that provide the Launchpad. Having such a
   GSI SSH applet would allow portal developers to integrate a command
   line interface right into their portals.
   
1.2      Campaign Definition

   
   Develop a signed applet that provides a commandline interface that
   uses GSI for authentication. The applet canb be run either within a
   browser through applet technologies, or locally as application through
   the web start technology. In the course of the campaign it is to be
   evaluated if a JSP based version of this tool should also be
   developed. The actual implementation may be based on the plugin
   technology as used by several already existing Java terminal
   emulators.
   
1.3      Deliverables

   
    1. Preparation
       
    a. Analyze the available Java terminal emulators available on the Web
       (such as MindTerm, ...)
    b. Select an extendable terminal emulator from this set with suitable
       licence for plugin expansion or modification.
       
     Documentation
    a. Develop a UML diagram of the classes and methods
    b. Develop a detailed JavaDoc specification of the functionality of
       each class and method
    c. Provide a chapter about the GSI SSH shell and its use for the CoG
       Kit users manual.
    d. Update of the project progress.
    e. Evaluate the design/use of equivalent C tools in contrast it to
       possible different Java/OO design principles.
       
     Plugin Development:
    a. Develop a detailed implementation plan based on the chosen tool
       
     Usage
    a. Develop a test applet that includes the jar file as part of a
       simple portal (one page html file)
    b. Develop a shell script that can be run in the terminal emulator to
       demonstrate successive commands.
       
     Packaging
    a. Develop a packaging scheme based on ant that include compiling and
       signing
       
    1. Deliver a signed jar file
       
     Develop an ant file that can install the demo locally on a web
   server in the public_html directory.
   
     Develop the Java Webstart framework for downloading and installing
   the shell locally.
   
    
   
1.4      Funding

   TBD, Cactus?
   
1.5      Task List

   TBD, this requires the assignment of the deliverables to people with
   time estimates
   
1.6      Project Team

   TBD
   
1.7      Future Direction

   Integration in the Cactus Portal
   


some other note

Gregor,

Yes, I have included the code (as is, no documentation but GSI.txt has some info..) I developed prior to Jarek's implementation of the GSS-API in Java. I enhanced MindTerm to allow a user to authenticate to with GSI, However, this enhancment only applies where the user chooses which method to authenticate. Apparently, MindTerm implements authentication in several modules, instead of one. Thus, I have yet to add GSI to the separate SSH API also provided by MindTerm, which is used by jCVS apparently for running CVS over SSH.

One important note: I discovered and fixed a bug in the GSI-OpenSSH implementation by NCSA. This bug prevented one from authenticating to GSI-SSH without providing a username (seriously, that bug was not discovered before, very strange!). I will check to see if this fix has been applied to the source.

The main reason I did not meet my further development goals for GSI-SSH was because I was unable to install Globus on MacOSX and I did not have DSL at home to program. Now that I have solutions to both of these problems, I really intend to complete my other development goals for GSI-SSH with MindTerm, which include:

1) Augmenting the latest version of MindTerm. The version I have is slightly older. It's a very bad implementation by MindTerm because they implemented their own JCE package in a non-standard way and I had to find a way around that bad implementation! 2) Using Jarek's Java GSSAPI-GSI implementation and not my home grown solution (though, I learned about GSI in the process of developing it!). 3) Augmenting the underlying MindTerm SSH-API and making this available, with documentation, to any and all interested parties. This would include JavaCoG, GridSphere (the ASC and GridLab portal framework), GPDK (for GSI-SSH implementation of JobSubmissionBean), and jCVS (for a pure Java GSI-CVS client and server!). 4) Augmenting MindTerm to work with MyProxy. 5) Augmenting MindTerm so that it can retrieve proxies from a Grid portal.

I would like to create this project and release it under the Globus license. For simplicity, I would like to setup a repository here at GridLab, but in principle I don't mind setting it up at Globus as long as I have access to the CVSROOT for the project so that I can make changes as needed.

Will this do? Please, I'm very excited and interested in pursuing this with you, now that I can develop again!!! :)

Michael

gsi mindterm

Michael,

Cool. This is great news!


>> Recently, I was able to add a GSI user authentication mechanism to >> MindTerm, a popular Java terminal applet that implements SSH v1 and v2. >> I can make this source available to people immediately, but I have >> questions about how to make this enhancement generally avialable. I plan >> to communicate with the makers of MindTerm of course. My current work >> uses the IAIK libraries, in the same manner as JavaCoG. This may be a >> problem in conjunction with MindTerm, a commercial appplication which, >> according to its license, is free for non-commercial use and may also be >> modified for non-commercial applications. So, I will look into the >> non-IAIK implementation of the JSSE-like API now available in JavaCoG. >> Beyond this, how else should I see about making this available?


The new GSI API are not ready yet. So, I think the best route for now is to just to use JSSE API directly in your implementation. The delegation part should be fairly easy to reimplement/switch later (or you can just use Jason's code based on the free library) But once we are done with the new GSI API we can integrate it with your code.


>> Also, I'm wondering would it make sense to have a proper >> GSI-implementation of the GSSAPI before trying to work these >> enhancements into future MindTerm releases? How is that project coming >> along?


The proper implementation of the GSSAPI is nowhere at this point. I'm sure we will get to this at some point but we first need to find a good open-source SSL implementation. Anyway, for now I would assume that we don't have a proper GSSAPI implementation and work off that. That's our plan for the OGSA SOAP-level security project.


>> Furthermore, I'm looking into how I can enhance GSI-MindTerm so that it >> could work in conjunction with Web portals and scenarios where proxy >> certificates are not generated locally, but rather, retrieved from >> online certificate repositories, like MyProxy. In the case of the >> GridLab Portal, the project I'm working on now, we want users to have to >> logon only to the GridLab Portal and would like to be able to launch >> GSI-SSH shells on remote hosts without requiring the user to have proxy >> certificates generated locally, but instead to use the same certificates >> retrieved when they logged onto the portal. So, the main problem is how >> to enable the applet client to retrieve or use proxy certificates >> located the Web server. Ideas are welcome.


Have you looked into MyProxy anonymous GET operation? That might be helpful if I understand you correctly. With this you can retrieve users credentials over regular SSL connection (no client certificates needed) just with a password.

Jarek


Changes to cog for gsi term

Jarek: I'm adding some new GSI Socket API (org.globus.gsi) that will hopefully simply a lot of stuff and make the API cleaner. It especially should simplify writing server-side things like the gatekeeper or even some code for I needed for Tomcat (or maybe even the gridftp stuff). I also added gridmap file support to cog (to check if people are authenticated or not). The current server-side libraries were just not flexible enough to handle gridmap files...

Personal tools
Collaboration and Jobs