Chromium Code Reviews| Index: chrome/browser/spdyproxy/http_auth_handler_spdyproxy.h |
| diff --git a/chrome/browser/spdyproxy/http_auth_handler_spdyproxy.h b/chrome/browser/spdyproxy/http_auth_handler_spdyproxy.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e99fde5dc6985c071e49c437684633bda405bb8e |
| --- /dev/null |
| +++ b/chrome/browser/spdyproxy/http_auth_handler_spdyproxy.h |
| @@ -0,0 +1,78 @@ |
| +// Copyright (c) 2012 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 CHROME_BROWSER_SPDYPROXY_HTTP_AUTH_HANDLER_SPDYPROXY_H_ |
| +#define CHROME_BROWSER_SPDYPROXY_HTTP_AUTH_HANDLER_SPDYPROXY_H_ |
| + |
| +#include <string> |
| + |
| +#include "net/http/http_auth_handler.h" |
| +#include "net/http/http_auth_handler_factory.h" |
| + |
| +namespace spdyproxy { |
| + |
| +// Code for handling http SpdyProxy authentication. |
| +class HttpAuthHandlerSpdyProxy : public net::HttpAuthHandler { |
| + public: |
| + class Factory : public net::HttpAuthHandlerFactory { |
| + public: |
| + // Constructs a new spdyproxy handler factory which mints handlers that |
| + // respond to challenges only from the given |authorized_spdyproxy_origin|. |
| + explicit Factory(const GURL& authorized_spdyproxy_origin); |
| + virtual ~Factory(); |
| + |
| + virtual int CreateAuthHandler( |
| + net::HttpAuth::ChallengeTokenizer* challenge, |
| + net::HttpAuth::Target target, |
| + const GURL& origin, |
| + CreateReason reason, |
| + int digest_nonce_count, |
| + const net::BoundNetLog& net_log, |
| + scoped_ptr<HttpAuthHandler>* handler) OVERRIDE; |
| + |
| + private: |
| + // The origin for which we will respond to SpdyProxy auth challenges. |
| + GURL authorized_spdyproxy_origin_; |
| + }; |
| + |
| + // Constructs a new spdyproxy handler which responds to challenges |
| + // from the given |authorized_spdyproxy_origin|. |
| + explicit HttpAuthHandlerSpdyProxy( |
| + const GURL& authorized_spdyproxy_origin); |
| + |
| + virtual net::HttpAuth::AuthorizationResult HandleAnotherChallenge( |
| + net::HttpAuth::ChallengeTokenizer* challenge) OVERRIDE; |
| + |
| + virtual bool NeedsIdentity() OVERRIDE; |
| + virtual bool AllowsDefaultCredentials() OVERRIDE; |
| + |
| + virtual bool AllowsExplicitCredentials() OVERRIDE; |
| + |
| + const std::string& ps_token() const { return ps_token_; } |
|
cbentzel
2012/09/18 15:30:52
It looks like this is only part of the public inte
Michael Piatek
2012/09/18 20:32:05
Done.
|
| + |
| + private: |
| + virtual ~HttpAuthHandlerSpdyProxy() {} |
| + |
| + virtual bool Init(net::HttpAuth::ChallengeTokenizer* challenge) OVERRIDE; |
| + |
| + virtual int GenerateAuthTokenImpl(const net::AuthCredentials* credentials, |
| + const net::HttpRequestInfo* request, |
| + const net::CompletionCallback& callback, |
| + std::string* auth_token) OVERRIDE; |
| + |
| + bool ParseChallenge(net::HttpAuth::ChallengeTokenizer* challenge); |
| + |
| + bool ParseChallengeProperty(const std::string& name, |
| + const std::string& value); |
| + |
| + // The origin for which we will respond to SpdyProxy auth challenges. |
| + GURL authorized_spdyproxy_origin_; |
| + |
| + // The ps token, encoded as UTF-8. |
| + std::string ps_token_; |
| +}; |
| + |
| +} // namespace spdyproxy |
| + |
| +#endif // CHROME_BROWSER_SPDYPROXY_HTTP_AUTH_HANDLER_SPDYPROXY_H_ |