Neha, The debug option suggested in the previous thread would help get useful logs to see what the issue is. http://www.globus.org/mail_archive/csec-dev/2008/08/msg00011.html. The environment variable is for C side of things, so you should set it on your client side and run the client. It is not used on the Java (your server) side.
I tested old style proxy (with use of CN=proxy) with depth 5 on the Java side of things, and the handshake worked fine without any hangs. On the server side, there is SSL level logging you can modify, that would generate loads of messages tho': log4j.category.COM.claymoresystems.ptls.SSLDebug=OFF I suggest we start with the C side logs to first understand what the client is waiting on. Rachana > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Neha Sharma > Sent: Thursday, August 14, 2008 11:22 AM > To: Charles Bacon > Cc: Neha Sharma; [email protected] > Subject: Re: [gt-user] Any known limitation > in"globus_gss_assist_init_sec_context" ?? > > Hi > > I tried debugging this issue on client side, but no luck so far. > > So, I decided to figure out the hang on Server Side (in Java) > > This is what is happening on server side: (I have included relevant > code) > > - once server receives request from client, it gets out of the > accept() method call and forks a client thread (passes the socket as > an argument) > > server = new ServerSocket(port); > socket = server.accept(); > sazInit=new SAZInit(socket,confObject); > SAZClientThread sazClientThread=new SAZClientThread(sazInit); > sazClientThread.start(); > > - within this client thread, the first thing it does is obtain an > ExtendedGSSContext (using the servers host cert and host key) and > passes it as an argument to another function > "getGsiServerSocket " . I > have attached file called ANAM.java which contains these functions. > > > context > = > anamObject > .getGsiServerContext > (confObject.SAZ_SERVER_CERT,confObject.SAZ_SERVER_KEY); > clientSocket = anamObject.getGsiServerSocket(clientSocket,context); > > I believe handshake is being done by function "getGsiClientSocket", > (Socket clientSocket = > GssSocketFactory.getDefault().createSocket(host, port, context);) > > - then it tries to obtain a input and output stream using > this client > socket. This is where it hangs... > > the code which does this is : > rwSocket=new ReadWriteSocket(clientSocket); > > and I have attached file called ReadWriteSocket.java. > > Basically this is what the constructor is doing.. > > public ReadWriteSocket(Socket clientSocket){ > this.clientSocket=clientSocket; > try{ > in=clientSocket.getInputStream(); > out=clientSocket.getOutputStream(); > reader =new BufferedReader(new > InputStreamReader(in)); > writer=new PrintStream(out); > din=new DataInputStream(in); > dout=new DataOutputStream(out); > }catch(IOException e){ > System.out.println("Exception "+e); > } > } > > The code hangs on the getInputStream() function... > > I have also tested that if I just try to get input and output stream > from the socket object (when it gets created by server and is passed > to the thread before globus libraries are used), i can get them. > > So obviously globus libraries are modifying the client socket > in a way > that is causing the problem in case of proxy delegated 5 times and > above.. > > At this stage, I am not sure what else I can try at my end and am > looking forward for any support from the Globus folks.. > > If you need any other information, please let me know > -Neha > >
