class Poco::Net::HTTPDigestCredentials

Overview

This is a utility class for working with HTTP Digest Authentication in HTTPRequest objects. More…

#include <HTTPDigestCredentials.h>

class HTTPDigestCredentials
{
public:
    // fields

    static const std::string SCHEME;

    // construction

    HTTPDigestCredentials();

    HTTPDigestCredentials(
        const std::string& username,
        const std::string& password
        );

    // methods

    void
    reset();

    void
    setUsername(const std::string& username);

    const std::string&
    getUsername() const;

    void
    setPassword(const std::string& password);

    const std::string&
    getPassword() const;

    void
    authenticate(
        HTTPRequest& request,
        const HTTPResponse& response
        );

    void
    authenticate(
        HTTPRequest& request,
        const HTTPAuthenticationParams& responseAuthParams
        );

    void
    updateAuthInfo(HTTPRequest& request);

    void
    proxyAuthenticate(
        HTTPRequest& request,
        const HTTPResponse& response
        );

    void
    proxyAuthenticate(
        HTTPRequest& request,
        const HTTPAuthenticationParams& responseAuthParams
        );

    void
    updateProxyAuthInfo(HTTPRequest& request);

    bool
    verifyAuthInfo(const HTTPRequest& request) const;

    bool
    verifyAuthParams(
        const HTTPRequest& request,
        const HTTPAuthenticationParams& params
        ) const;

    static
    std::string
    createNonce();
};

Detailed Documentation

This is a utility class for working with HTTP Digest Authentication in HTTPRequest objects.

Note: currently, no qop or qop=auth is supported only.

Construction

HTTPDigestCredentials()

Creates an empty HTTPDigestCredentials object.

HTTPDigestCredentials(
    const std::string& username,
    const std::string& password
    )

Creates a HTTPDigestCredentials object with the given username and password.

Methods

void
reset()

Resets the HTTPDigestCredentials object to a clean state.

void
setUsername(const std::string& username)

Sets the username.

const std::string&
getUsername() const

Returns the username.

void
setPassword(const std::string& password)

Sets the password.

const std::string&
getPassword() const

Returns the password.

void
authenticate(
    HTTPRequest& request,
    const HTTPResponse& response
    )

Parses WWW-Authenticate header of the HTTPResponse, initializes internal state, and adds authentication information to the given HTTPRequest.

void
authenticate(
    HTTPRequest& request,
    const HTTPAuthenticationParams& responseAuthParams
    )

Initializes internal state according to information from the HTTPAuthenticationParams of the response, and adds authentication information to the given HTTPRequest.

Throws InvalidArgumentException if HTTPAuthenticationParams is invalid or some required parameter is missing. Throws NotImplementedException in case of unsupported digest algorithm or quality of protection method.

void
updateAuthInfo(HTTPRequest& request)

Updates internal state and adds authentication information to the given HTTPRequest.

void
proxyAuthenticate(
    HTTPRequest& request,
    const HTTPResponse& response
    )

Parses Proxy-Authenticate header of the HTTPResponse, initializes internal state, and adds proxy authentication information to the given HTTPRequest.

void
proxyAuthenticate(
    HTTPRequest& request,
    const HTTPAuthenticationParams& responseAuthParams
    )

Initializes internal state according to information from the HTTPAuthenticationParams of the response, and adds proxy authentication information to the given HTTPRequest.

Throws InvalidArgumentException if HTTPAuthenticationParams is invalid or some required parameter is missing. Throws NotImplementedException in case of unsupported digest algorithm or quality of protection method.

void
updateProxyAuthInfo(HTTPRequest& request)

Updates internal state and adds proxy authentication information to the given HTTPRequest.

bool
verifyAuthInfo(const HTTPRequest& request) const

Verifies the digest authentication information in the given HTTPRequest by recomputing the response and comparing it with what’s in the request.

Note: This method creates a HTTPAuthenticationParams object from the request and calls verifyAuthParams() with request and params.

bool
verifyAuthParams(
    const HTTPRequest& request,
    const HTTPAuthenticationParams& params
    ) const

Verifies the digest authentication information in the given HTTPRequest and HTTPAuthenticationParams by recomputing the response and comparing it with what’s in the request.

static
std::string
createNonce()

Creates a random nonce string.