2929
3030import javax .net .ssl .KeyManager ;
3131import javax .net .ssl .SSLContext ;
32+ import javax .net .ssl .SSLSocket ;
3233import javax .net .ssl .SSLSocketFactory ;
3334import javax .net .ssl .TrustManager ;
3435
4243
4344public class RadSecClientTransport extends RadiusClientTransport
4445{
45- private Socket socket ;
46- private Socket socketAcct ;
46+ private SSLSocket socket ;
47+ private SSLSocket socketAcct ;
4748 private KeyManager keyManagers [];
4849 private TrustManager trustManagers [];
4950
5051 protected final ByteBuffer buffer_in ;
5152 protected final ByteBuffer buffer_out ;
5253
54+ private String [] protocols = new String [] { "TLSv1" };
55+
5356 public RadSecClientTransport (KeyManager keyManager , TrustManager trustManager )
5457 {
5558 this (new KeyManager [] { keyManager } , new TrustManager [] { trustManager });
@@ -71,19 +74,21 @@ private void initialize()
7174 {
7275 try
7376 {
74- SSLContext sslContext = SSLContext .getInstance ("SSLv3" );
77+ SSLContext sslContext = SSLContext .getInstance (protocols [ 0 ] );
7578 sslContext .init (keyManagers , trustManagers , null );
7679
7780 SSLSocketFactory socketFactory = sslContext .getSocketFactory ();
78- socket = socketFactory .createSocket (getRemoteInetAddress (), getAuthPort ());
81+ socket = ( SSLSocket ) socketFactory .createSocket (getRemoteInetAddress (), getAuthPort ());
7982 socket .setReuseAddress (true );
8083 socket .setSoTimeout (getSocketTimeout () * 1000 );
84+ socket .setEnabledProtocols (protocols );
8185
8286 if (getAcctPort () != getAuthPort ())
8387 {
84- socketAcct = socketFactory .createSocket (getRemoteInetAddress (), getAcctPort ());
88+ socketAcct = ( SSLSocket ) socketFactory .createSocket (getRemoteInetAddress (), getAcctPort ());
8589 socketAcct .setReuseAddress (true );
8690 socketAcct .setSoTimeout (getSocketTimeout () * 1000 );
91+ socketAcct .setEnabledProtocols (protocols );
8792 }
8893 }
8994 catch (Exception e )
0 commit comments