/** Extract basic credentials from an HTTP \a request.
 *
 * Returns \b true if credentials were provider, \b false otherwise.
 */
bool QDjangoHttpController::getBasicAuth(const QDjangoHttpRequest &request, QString &username, QString &password)
{
    QRegExp authRx("^Basic (.+)$");
    const QString authHeader = request.header("Authorization");
    if (authRx.exactMatch(authHeader)) {
        const QString authValue = QString::fromUtf8(QByteArray::fromBase64(authRx.cap(1).toAscii()));
        const QStringList bits = authValue.split(":");
        if (bits.size() == 2 && !bits[0].isEmpty() && !bits[1].isEmpty()) {
            username = bits[0];
            password = bits[1];
            return true;
        }
    }
    return false;
}
示例#2
0
/** Extract basic credentials from an HTTP \a request.
 *
 * Returns \b true if credentials were provider, \b false otherwise.
 */
bool QDjangoHttpController::getBasicAuth(const QDjangoHttpRequest &request, QString &username, QString &password)
{
    QRegExp authRx(QLatin1String("^Basic (.+)$"));
    const QString authHeader = request.meta(QLatin1String("HTTP_AUTHORIZATION"));
    if (authRx.exactMatch(authHeader)) {
        const QString authValue = QString::fromUtf8(QByteArray::fromBase64(authRx.cap(1).toLatin1()));
        const QStringList bits = authValue.split(QLatin1Char(':'));
        if (bits.size() == 2 && !bits[0].isEmpty() && !bits[1].isEmpty()) {
            username = bits[0];
            password = bits[1];
            return true;
        }
    }
    return false;
}