A simple Qt based browser with no bullshit that supports PKCS#11 tokens (such as the SuisseID).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

66 lines
1.5 KiB

/*! @file
@id $Id$
*/
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
#ifndef SSLCLIENTNETWORKMANAGER_HXX
#define SSLCLIENTNETWORKMANAGER_HXX
#include <qbrowserlib/log.hxx>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QNetworkAccessManager>
#include <qbrowserlib/smartcardauth.hxx>
namespace qbrowserlib {
//! @addtogroup pkcs11
//! @{
class SslClientAuthNetworkAccessManager: public QNetworkAccessManager {
Q_OBJECT;
public:
SslClientAuthNetworkAccessManager(QObject* parent = 0):
QNetworkAccessManager(parent) {
TRC;
}
virtual ~SslClientAuthNetworkAccessManager() {
TRC;
}
void scAuth(SmartCardAuth* auth) {
_scAuth = std::unique_ptr<SmartCardAuth>(auth);
}
Q_SIGNALS:
void created(QNetworkReply*);
protected:
virtual QNetworkReply* createRequest(Operation op,
const QNetworkRequest& req,
QIODevice* outgoingData = 0 ) {
TRC; LOG<<req.url();
if (req.url().scheme()=="https") {
LOG<<"Need to login";
if (_scAuth.get()) _scAuth->login(false);
}
QNetworkReply* rep
(QNetworkAccessManager::createRequest(op, req, outgoingData));
created(rep);
LOG<<"Reply to URL: "<<rep->url().toString();
return rep;
}
private:
std::unique_ptr<SmartCardAuth> _scAuth;
};
//! @}
}
#endif