package cx.fbn.nevernote.oauth; import com.trolltech.qt.core.QIODevice; import com.trolltech.qt.core.QObject; import com.trolltech.qt.network.QNetworkAccessManager; import com.trolltech.qt.network.QNetworkReply; import com.trolltech.qt.network.QNetworkRequest; import com.trolltech.qt.network.QSsl.SslProtocol; import com.trolltech.qt.network.QSslConfiguration; import cx.fbn.nevernote.utilities.ApplicationLogger; public class TlsNetworkAccessManager extends QNetworkAccessManager { private final ApplicationLogger logger; public TlsNetworkAccessManager(ApplicationLogger logger) { super(); this.logger = logger; } public TlsNetworkAccessManager(QObject parent, ApplicationLogger logger) { super(parent); this.logger = logger; } @Override protected QNetworkReply createRequest(Operation op, QNetworkRequest request, QIODevice outgoingData) { logger.log(logger.EXTREME, "TlsNetworkAccessManager URL request scheme: " + request.url().scheme() + " " + request.url().toString()); // Force to use TLSv1 QSslConfiguration sslConfig = request.sslConfiguration(); sslConfig.setProtocol(SslProtocol.TlsV1); request.setSslConfiguration(sslConfig); QNetworkReply reply = super.createRequest(op, request, outgoingData); reply.sslErrors.connect(reply, "ignoreSslErrors()"); return reply; } }