void KDEPrintd::processRequest() { if(m_requestsPending.count() == 0) return; Request *req = m_requestsPending.first(); KIO::AuthInfo info; QByteArray params, reply; QCString replyType; QString authString("::"); info.username = req->user; info.keepPassword = true; info.url = req->uri; info.comment = i18n("Printing system"); QDataStream input(params, IO_WriteOnly); input << info << i18n("Authentication failed (user name=%1)").arg(info.username) << 0L << (long int)req->seqNbr; if(callingDcopClient()->call("kded", "kpasswdserver", "queryAuthInfo(KIO::AuthInfo,QString,long int,long int)", params, replyType, reply)) { if(replyType == "KIO::AuthInfo") { QDataStream output(reply, IO_ReadOnly); KIO::AuthInfo result; int seqNbr; output >> result >> seqNbr; if(result.isModified()) authString = result.username + ":" + result.password + ":" + QString::number(seqNbr); } else
bool ClientThread::authenticateClient() { socket->waitForReadyRead(); QByteArray authData = socket->readAll(); QString authString(authData); QStringList authStrs = authString.split(":"); if (authStrs.count() < 2) { qDebug() << socketDescriptor << "Authentication string must be user:pass"; return 0; } QString login(authStrs[0].simplified()); QString pass(authStrs[1].simplified()); QString encryptedPass = QString(QCryptographicHash::hash((pass.toLocal8Bit()), QCryptographicHash::Md5).toHex()); qDebug() << socketDescriptor << " User: [" << login << "]"; qDebug() << socketDescriptor << " Pass: [" << encryptedPass << "]"; user->name = login; user->host = socket->peerAddress(); QSqlDatabase authDB = QSqlDatabase::database("auth"); QSqlQuery query(authDB); query.prepare("SELECT id, password FROM account WHERE username = :login"); query.bindValue(":login", login); query.exec(); if (query.size() < 1) { qDebug() << socketDescriptor << " User not found!"; return 0; } query.next(); QString realPass = query.value(1).toString(); int userID = query.value(0).toInt(); query.prepare("SELECT access_level FROM account_access WHERE id = :id"); query.bindValue(":id", userID); query.exec(); if (query.size() == 0) { user->accessLevel = 0; } else { query.next(); int accessLevel = query.value(0).toInt(); user->accessLevel = accessLevel; } // qDebug() << "query: " << query.value(0).toString() << " " << query.value(1).toString(); if (realPass != encryptedPass) qDebug() << socketDescriptor << " Wrong password!"; return 1; }
void CSmtpAuthLoginMechanismHelper::ConstructL() { TInt len=(((iSettings.LoginName().Length()/3)+1)*4)+2; // length of LoginName in base 64 + 2 for CRLF iBase64LoginName=HBufC8::NewL(len); TPtr8 authString(iBase64LoginName->Des()); iEncoder.Encode(iSettings.LoginName(),authString); authString.Append(KSmtpCrLf); len=(((iSettings.Password().Length()/3)+1)*4)+2; // length of Password in base 64 + 2 for CRLF iBase64Password=HBufC8::NewL(len); authString.Set(iBase64Password->Des()); iEncoder.Encode(iSettings.Password(),authString); authString.Append(KSmtpCrLf); }
CHXString HXCloakedV2TCPSocket::_GetProxyAuthString() { IHXBuffer* pBuffer = NULL; CHXString retStr = ""; CHXString key = "proxy-authentication.http:"; IHXBuffer* pHeaderBuffer = NULL; HX_RESULT res = HXR_OK; IHXRegistry* pRegistry = NULL; CHXString recentProxyAuth; res = m_pContext->QueryInterface(IID_IHXRegistry, (void**)&pRegistry); if( SUCCEEDED(res) ) { res = pRegistry->GetStrByName("proxy-authentication.http.realm.recent", pHeaderBuffer); if (SUCCEEDED(res)) { recentProxyAuth = CHXString((const char*)pHeaderBuffer->GetBuffer(), pHeaderBuffer->GetSize()); } HX_RELEASE(pHeaderBuffer); key += m_pszProxyName; key += ":"; key += recentProxyAuth; res = pRegistry->GetStrByName((const char*)key, pBuffer); if( SUCCEEDED(res) && pBuffer ) { CHXString authString((const char*)pBuffer->GetBuffer(), pBuffer->GetSize()); retStr = "Proxy-Authorization: "; retStr += authString; } HX_RELEASE(pBuffer); } HX_RELEASE(pRegistry); return retStr; }