2013-02-22 3 views
1

Я хочу создать и настроить объект SSLContext, а затем сделать mysql.jdbc.Driver использовать его для установления безопасного соединения. Есть ли подход к нему лучше, чем обычай jdbc.Driver?Настройка подключения SSLContext к jdbc

ответ

0

Вы можете создать собственный com.mysql.jdbc.SocketFactory класс, который создает SSLSocket сек, используя SSLSocketFactory Исходя из этого SSLContext. Затем вы можете передать это имя класса в соединитель JDBC MySQL, используя свойство socketFactory (см. Таблицу в documentation).

Это должен иметь конструктор без параметров, но его метод Socket connect(String host, Properties props) должен получить свойства JDBC через его параметр props (если вам нужно).

Обратите внимание, что вы должны не только проверить правильность вашего сертификата, но и проверить соответствие имени хоста. Если вы используете Java 7, это может быть сделано, как это до возвращения SSLSocket вы только что создали:

SSLParameters sslParams = new SSLParameters(); 
sslParams.setEndpointIdentificationAlgorithm("HTTPS"); 
sslSocket.setSSLParameters(sslParams); 

(имя хоста, соответствующие правила для HTTPS должны быть достаточно разумными для большинства протоколов, в том числе MySQL.)

+0

Кажется, он заменит StandardSocketFactory [1], поэтому вы потеряете все функции, относящиеся к тайм-аутам, keepalive и buffersize, не так ли? [1] http://www.docjar.com/html/api/com/mysql/jdbc/StandardSocketFactory.java.html – Adrien

Смежные вопросы