Hello Nitya,

> in the implementation they say that you need to write this...
> 
> Protocol stricthttps = new Protocol( "https", new
> StrictSSLProtocolSocketFactory(true), 443);
>      HttpClient client = new HttpClient();
>      client.getHostConfiguration().setHost("hostname", 443, stricthttps);
> 
> Now this Factory implementation stops the man in the middle attack... by
> verifying the hostName... TRUE passed in its constructor..
> 
> But doesnt it mean that it should also call this classes' createSocket()
> method??? because that method has the method verifyHostName() which should
> be called so that hostname is verified???

When SSL connections are tunnelled through a proxy, there is
first a plain HTTP connection to the proxy. That's what you've
made to work now. Subsequently, a tunnel to the target is
established, and the SSL connection with protocol "https"
is layered on top of that. You don't have to verify a hostname
for the connection to the proxy.
> 
> By implementing the above code I see that the createSocket() method of
> StrictSSLProtocolSocketFactory class doesnt get called.. why is that??? or i
> m missing something here????

Have a look at HttpConnection.tunnelCreated, that's where
the SSL connection is layered on top of the tunnel.

If you have specific SSL questions, you should also consider
posting them to the nyc-ssl mailing list:
http://www.juliusdavies.ca/commons-ssl/

hope that helps,
  Roland



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to