diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
commit | 2d37894b1b037cf24231090eda8589bbb44fb6fc (patch) | |
tree | be835aa92c6248212e705f25388ebafcf84bc7a1 /contrib/libs/poco/Net/src/HTTPBasicCredentials.cpp | |
parent | 718c552901d703c502ccbefdfc3c9028d608b947 (diff) | |
download | ydb-2d37894b1b037cf24231090eda8589bbb44fb6fc.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/poco/Net/src/HTTPBasicCredentials.cpp')
-rw-r--r-- | contrib/libs/poco/Net/src/HTTPBasicCredentials.cpp | 268 |
1 files changed, 134 insertions, 134 deletions
diff --git a/contrib/libs/poco/Net/src/HTTPBasicCredentials.cpp b/contrib/libs/poco/Net/src/HTTPBasicCredentials.cpp index dace0afd5e..5b5e89897e 100644 --- a/contrib/libs/poco/Net/src/HTTPBasicCredentials.cpp +++ b/contrib/libs/poco/Net/src/HTTPBasicCredentials.cpp @@ -1,134 +1,134 @@ -// -// HTTPBasicCredentials.cpp -// -// Library: Net -// Package: HTTP -// Module: HTTPBasicCredentials -// -// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Net/HTTPBasicCredentials.h" -#include "Poco/Net/HTTPRequest.h" -#include "Poco/Net/NetException.h" -#include "Poco/Base64Encoder.h" -#include "Poco/Base64Decoder.h" -#include "Poco/String.h" -#include <sstream> - - -using Poco::Base64Decoder; -using Poco::Base64Encoder; -using Poco::icompare; - - -namespace Poco { -namespace Net { - - -const std::string HTTPBasicCredentials::SCHEME = "Basic"; - - -HTTPBasicCredentials::HTTPBasicCredentials() -{ -} - - -HTTPBasicCredentials::HTTPBasicCredentials(const std::string& username, const std::string& password): - _username(username), - _password(password) -{ -} - - -HTTPBasicCredentials::HTTPBasicCredentials(const HTTPRequest& request) -{ - std::string scheme; - std::string authInfo; - request.getCredentials(scheme, authInfo); - if (icompare(scheme, SCHEME) == 0) - { - parseAuthInfo(authInfo); - } - else throw NotAuthenticatedException("Basic authentication expected"); -} - - -HTTPBasicCredentials::HTTPBasicCredentials(const std::string& authInfo) -{ - parseAuthInfo(authInfo); -} - - -HTTPBasicCredentials::~HTTPBasicCredentials() -{ -} - - -void HTTPBasicCredentials::clear() -{ - _username.clear(); - _password.clear(); -} - - -void HTTPBasicCredentials::setUsername(const std::string& username) -{ - _username = username; -} - - -void HTTPBasicCredentials::setPassword(const std::string& password) -{ - _password = password; -} - - -void HTTPBasicCredentials::authenticate(HTTPRequest& request) const -{ - std::ostringstream ostr; - Base64Encoder encoder(ostr); - encoder.rdbuf()->setLineLength(0); - encoder << _username << ":" << _password; - encoder.close(); - request.setCredentials(SCHEME, ostr.str()); -} - - -void HTTPBasicCredentials::proxyAuthenticate(HTTPRequest& request) const -{ - std::ostringstream ostr; - Base64Encoder encoder(ostr); - encoder.rdbuf()->setLineLength(0); - encoder << _username << ":" << _password; - encoder.close(); - request.setProxyCredentials(SCHEME, ostr.str()); -} - - -void HTTPBasicCredentials::parseAuthInfo(const std::string& authInfo) -{ - static const int eof = std::char_traits<char>::eof(); - - std::istringstream istr(authInfo); - Base64Decoder decoder(istr); - int ch = decoder.get(); - while (ch != eof && ch != ':') - { - _username += (char) ch; - ch = decoder.get(); - } - if (ch == ':') ch = decoder.get(); - while (ch != eof) - { - _password += (char) ch; - ch = decoder.get(); - } -} - - -} } // namespace Poco::Net +// +// HTTPBasicCredentials.cpp +// +// Library: Net +// Package: HTTP +// Module: HTTPBasicCredentials +// +// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/HTTPBasicCredentials.h" +#include "Poco/Net/HTTPRequest.h" +#include "Poco/Net/NetException.h" +#include "Poco/Base64Encoder.h" +#include "Poco/Base64Decoder.h" +#include "Poco/String.h" +#include <sstream> + + +using Poco::Base64Decoder; +using Poco::Base64Encoder; +using Poco::icompare; + + +namespace Poco { +namespace Net { + + +const std::string HTTPBasicCredentials::SCHEME = "Basic"; + + +HTTPBasicCredentials::HTTPBasicCredentials() +{ +} + + +HTTPBasicCredentials::HTTPBasicCredentials(const std::string& username, const std::string& password): + _username(username), + _password(password) +{ +} + + +HTTPBasicCredentials::HTTPBasicCredentials(const HTTPRequest& request) +{ + std::string scheme; + std::string authInfo; + request.getCredentials(scheme, authInfo); + if (icompare(scheme, SCHEME) == 0) + { + parseAuthInfo(authInfo); + } + else throw NotAuthenticatedException("Basic authentication expected"); +} + + +HTTPBasicCredentials::HTTPBasicCredentials(const std::string& authInfo) +{ + parseAuthInfo(authInfo); +} + + +HTTPBasicCredentials::~HTTPBasicCredentials() +{ +} + + +void HTTPBasicCredentials::clear() +{ + _username.clear(); + _password.clear(); +} + + +void HTTPBasicCredentials::setUsername(const std::string& username) +{ + _username = username; +} + + +void HTTPBasicCredentials::setPassword(const std::string& password) +{ + _password = password; +} + + +void HTTPBasicCredentials::authenticate(HTTPRequest& request) const +{ + std::ostringstream ostr; + Base64Encoder encoder(ostr); + encoder.rdbuf()->setLineLength(0); + encoder << _username << ":" << _password; + encoder.close(); + request.setCredentials(SCHEME, ostr.str()); +} + + +void HTTPBasicCredentials::proxyAuthenticate(HTTPRequest& request) const +{ + std::ostringstream ostr; + Base64Encoder encoder(ostr); + encoder.rdbuf()->setLineLength(0); + encoder << _username << ":" << _password; + encoder.close(); + request.setProxyCredentials(SCHEME, ostr.str()); +} + + +void HTTPBasicCredentials::parseAuthInfo(const std::string& authInfo) +{ + static const int eof = std::char_traits<char>::eof(); + + std::istringstream istr(authInfo); + Base64Decoder decoder(istr); + int ch = decoder.get(); + while (ch != eof && ch != ':') + { + _username += (char) ch; + ch = decoder.get(); + } + if (ch == ':') ch = decoder.get(); + while (ch != eof) + { + _password += (char) ch; + ch = decoder.get(); + } +} + + +} } // namespace Poco::Net |