Wie setze ich SslConfig bei QtSoap?
Wie setze ich SslConfig bei QtSoap?
Hi,
ich verzeweifel gerade daran, wieich den QtSoapHttpTransport beibringen kann das er eine best. Ssl Config nutzen soll!
Der NetworkAccessManager hat soweit ich das sehe keine möglichkeit diese (oder etwas anderes zu setzen.
Jemand von euch eine Idee?
ich verzeweifel gerade daran, wieich den QtSoapHttpTransport beibringen kann das er eine best. Ssl Config nutzen soll!
Der NetworkAccessManager hat soweit ich das sehe keine möglichkeit diese (oder etwas anderes zu setzen.
Jemand von euch eine Idee?
Gibt es nicht irgendwie die Möglichkeit das auch über enen SslSocket zu lösen?
Mitt Ssl Socket komme ich auf den Server und kann mich mit ihnverbinden.
Im connected kann schieße ich ihn dann wie folgt ab:
Es muss dochz aber irgendwie möglich sein sich via Ssl auf einen Soap zu connecten?!
Mitt Ssl Socket komme ich auf den Server und kann mich mit ihnverbinden.
Im connected kann schieße ich ihn dann wie folgt ab:
Code: Alles auswählen
QtSoapMessage message;
message.setMethod( QtSoapQName("avmg__stop", "urn:javacsoap.local.avmg"));
ByteArray arr = message.toXmlString().toLatin1();
qint64 written = socket->write( arr );
Q_ASSERT(written == arr.size() );
So habjetzt den Zugriff ohne SSL und da kann ichz auch wunderbar kommunizieren.
Hilft aber nix da der Server später nur ssl können wird(mit Zertifikat, Key usw.)
Also das verbinden via SSL geht und das auslesen ohne ssl geht....
Jetzt muss ich das nur noch zusammenbringen....
Jemandeine Ahnung wie ich das SSL vom QtSoap einstellen kann?
Hilft aber nix da der Server später nur ssl können wird(mit Zertifikat, Key usw.)
Also das verbinden via SSL geht und das auslesen ohne ssl geht....
Jetzt muss ich das nur noch zusammenbringen....
Jemandeine Ahnung wie ich das SSL vom QtSoap einstellen kann?
QtSoap bekommt vom SSL nichts mit, das ist Sache von QHttp, bzw. QtSoapHttpTransport. Das Einzige was in meiner QtSoap-Klasse bzgl. SSL hinzugefügt wurde, ist der Connect um SSL-Fehler abzufangen. Ich hatte damals wochenlangen Mailverkehr mit den Trolls, da wir hier einen ISA-Proxy als zusätzliche Hürde haben.
Ja aber wo und wie soll ich das denn setzen?
Der QtSoapHttpTransport hat doch nirgends etwas wo ich diese config setzen kann oder?
Das komische ist ja das ich zwar https anmachen kann dann bekomme ich ja nur einen Handshake fehler (ssl handshake...)
Aber das Ssl Errors Signal bekomme ich nicht.
Also ich habe schon probiert mich via SslSocket zu verbinden. Das klappt. Die SslConfig istda und richtig.
Das einzige was ich sehe wo man SslConfig setzen kann ist bei der NetworkReply => der hat ein set SslConfiguration. Allerdings ist das ja bevor man eine abfrage sendet ein Null Ptr...
Wo/wann hast du deine config geschrieben?
Der QtSoapHttpTransport hat doch nirgends etwas wo ich diese config setzen kann oder?
Das komische ist ja das ich zwar https anmachen kann dann bekomme ich ja nur einen Handshake fehler (ssl handshake...)
Aber das Ssl Errors Signal bekomme ich nicht.
Also ich habe schon probiert mich via SslSocket zu verbinden. Das klappt. Die SslConfig istda und richtig.
Das einzige was ich sehe wo man SslConfig setzen kann ist bei der NetworkReply => der hat ein set SslConfiguration. Allerdings ist das ja bevor man eine abfrage sendet ein Null Ptr...
Wo/wann hast du deine config geschrieben?
Also ich habs hinbekommen.
Die Lösung: anpassen der Qt Sourcen:
Weiß nur nicht in wie weit das jetzt noch LGPL konform ist.
Die Lösung: anpassen der Qt Sourcen:
Code: Alles auswählen
void QtSoapHttpTransport::submitRequest(QtSoapMessage &request, const QString &path,const QSslConfiguration &sslConfig/*this is optional...default QSslConfiguration()*/)
{
QNetworkRequest networkReq;
networkReq.setSslConfiguration( sslConfig); // set the SslConfiguration
networkReq.setHeader(QNetworkRequest::ContentTypeHeader, QLatin1String("text/xml;charset=utf-8"));
networkReq.setRawHeader("SOAPAction", soapAction.toAscii());
url.setPath(path);
networkReq.setUrl(url);
soapResponse.clear();
networkRep = networkMgr.post(networkReq, request.toXmlString().toUtf8().constData());
}