123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- // Copyright (c) 2011 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef NET_BASE_AUTH_H__
- #define NET_BASE_AUTH_H__
- #include <string>
- #include "net/base/net_export.h"
- #include "url/scheme_host_port.h"
- namespace net {
- // Holds info about an authentication challenge that we may want to display
- // to the user.
- class NET_EXPORT AuthChallengeInfo {
- public:
- AuthChallengeInfo();
- AuthChallengeInfo(const AuthChallengeInfo& other);
- ~AuthChallengeInfo();
- // Returns true if this AuthChallengeInfo is equal to |other| except for
- // |path|. Can be used to determine if the same credentials can be provided
- // for two different requests.
- bool MatchesExceptPath(const AuthChallengeInfo& other) const;
- // Whether this came from a server or a proxy.
- bool is_proxy = false;
- // The service issuing the challenge.
- url::SchemeHostPort challenger;
- // The authentication scheme used, such as "basic" or "digest". The encoding
- // is ASCII.
- std::string scheme;
- // The realm of the challenge. May be empty. The encoding is UTF-8.
- std::string realm;
- // The authentication challenge.
- std::string challenge;
- // The path on which authentication was requested.
- std::string path;
- };
- // Authentication Credentials for an authentication credentials.
- class NET_EXPORT AuthCredentials {
- public:
- AuthCredentials();
- AuthCredentials(const std::u16string& username,
- const std::u16string& password);
- ~AuthCredentials();
- // Set the |username| and |password|.
- void Set(const std::u16string& username, const std::u16string& password);
- // Determines if |this| is equivalent to |other|.
- bool Equals(const AuthCredentials& other) const;
- // Returns true if all credentials are empty.
- bool Empty() const;
- const std::u16string& username() const { return username_; }
- const std::u16string& password() const { return password_; }
- private:
- // The username to provide, possibly empty. This should be ASCII only to
- // minimize compatibility problems, but arbitrary UTF-16 strings are allowed
- // and will be attempted.
- std::u16string username_;
- // The password to provide, possibly empty. This should be ASCII only to
- // minimize compatibility problems, but arbitrary UTF-16 strings are allowed
- // and will be attempted.
- std::u16string password_;
- // Intentionally allowing the implicit copy constructor and assignment
- // operators.
- };
- // Authentication structures
- enum AuthState {
- AUTH_STATE_DONT_NEED_AUTH,
- AUTH_STATE_NEED_AUTH,
- AUTH_STATE_HAVE_AUTH,
- AUTH_STATE_CANCELED
- };
- } // namespace net
- #endif // NET_BASE_AUTH_H__
|