Another reason why this is needed - I may want to enable the setWantClientAuth or setNeedClientAuth to enabled/disable client authentication. The only way to do this is have my own UserModeSSLServerSocketFactory-like class.
Actually, this might be something we can add directly in the Builder class now. Add setWantClientAuth and setNeedClientAuth methods on Builder and, just like what happens today with the useClientMode, the UserModeSSLServerSocketFactory class sets the flag on the socket.
BTW: there is a client-mode, want-client-auth and need-client-auth settings on SSLSockets as well. But Builder doesn't have a way to set those (there is no analogous UserModeSSLServerSocketFactory for the SSLSocketFactory).
To make Builder as customizable as possible, wouldn't it need to allow for that?