1
我想創建並配置SSLContext
對象,然後使mysql.jdbc.Driver
用它建立安全連接。有沒有更好的方法來定製jdbc.Driver
?將SSLContext設置爲jdbc連接
我想創建並配置SSLContext
對象,然後使mysql.jdbc.Driver
用它建立安全連接。有沒有更好的方法來定製jdbc.Driver
?將SSLContext設置爲jdbc連接
您可以創建一個自定義com.mysql.jdbc.SocketFactory
類,該類使用來自此SSLContext
的SSLSocketFactory
創建SSLSocket
s。然後,您可以使用socketFactory
屬性將該類名傳遞給MySQL JDBC連接器(請參閱documentation中的表)。
這需要一個沒有參數的構造函數,但其Socket connect(String host, Properties props)
方法應該通過參數props
(如果需要)獲取JDBC屬性。
請注意,您不僅應該檢查證書的有效性,還應檢查主機名是否匹配。如果您使用的是Java 7,這可以這樣進行返回剛纔創建的SSLSocket
前:爲HTTPS
SSLParameters sslParams = new SSLParameters();
sslParams.setEndpointIdentificationAlgorithm("HTTPS");
sslSocket.setSSLParameters(sslParams);
(主機名匹配規則應該是大多數協議,包括MySQL足夠明智。 )
它似乎會取代StandardSocketFactory [1],所以你會失去所有有關超時,keepalive和buffersize的功能,不是嗎? [1] http://www.docjar.com/html/api/com/mysql/jdbc/StandardSocketFactory.java.html – Adrien 2014-03-11 23:00:13