JDBC SSL重用会话属性MSSQL

时间:2016-06-08 13:53:58

标签: java ssl session-reuse

我尝试使用SSL连接MSSQL服务器和JDBC,但希望模拟重用会话。我打开了第一个连接,并成功地看到了SSL握手。 在关闭第一个客户端时,我从同一个客户端(IP,端口)打开了一个新的,并期望看到重用会话(短暂握手)。但实际上结果是2次握手。我是否需要发送一些要求连接某个会话ID的URL属性,还是有其他方法? 吼我的代码。在连接2连接后我的调试打印中我得到:

%% No cached client session

*** ClientHello,TLSv1.2 RandomCookie:GMT:1465392528 bytes = {43,89,208,221,13,215,236,167,68,88,125,134,95,233,198,226,193,180,250,181,38, 62,144,35,162,215,71,59} 会话ID:{}

表示我被认可为新客户。

我正在使用Win7 Java 8,MSSQL server2012

非常感谢。

    public void connect() throws SQLException, NoSuchAlgorithmException {

        System.setProperty("java.library.path",System.getProperty("java.library.path")+";C:\\Users\\aviva\\Desktop\\JDBC\\sqljdbc_6.0\\enu\\auth\\x86\\sqljdbc_auth.dll;C:\\Users\\aviva\\Desktop\\JDBC\\sqljdbc_6.0\\enu\\auth\\x64\\sqljdbc_auth.dll");
        String connectionUrl2 = "jdbc:sqlserver://<IP>:<PORT>;databaseName=master;EncryptionMethod=loginSSL";
        try {
            Connection conn1;
            Connection conn2;
            String queryString = "select * from sysobjects where type='u'";

            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn1 = DriverManager.getConnection(connectionUrl2, "user", "password");
            System.out.println("con1 is connected...");
            Statement statement1 = conn1.createStatement();
            ResultSet rs1 = statement1.executeQuery(queryString);
            System.out.println("1 results");
            while (rs1.next()) {
                System.out.println(rs1.getString(1));
            }
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn2 = DriverManager.getConnection(connectionUrl2, "user", "password");
            System.out.println("con2 is connected...");
            Statement statement2 = conn2.createStatement();
            ResultSet rs2 = statement2.executeQuery(queryString);
            System.out.println("2 results");
            while (rs2.next()) {
                System.out.println(rs2.getString(1));
            }
            conn1.close();
            conn2.close();
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
 }

0 个答案:

没有答案