Chromium Code Reviews| Index: chrome/browser/sync/engine/authenticator.h |
| =================================================================== |
| --- chrome/browser/sync/engine/authenticator.h (revision 0) |
| +++ chrome/browser/sync/engine/authenticator.h (revision 0) |
| @@ -0,0 +1,106 @@ |
| +// Copyright (c) 2006-2009 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. |
| + |
| +// The authenticator is a cross-platform class that handles authentication for |
| +// the sync client. |
| +// |
| +// Current State: |
| +// The authenticator is currently only used to authenticate tokens using the |
| +// newer protocol buffer request. |
| + |
| +#ifndef CHROME_BROWSER_SYNC_ENGINE_AUTHENTICATOR_H_ |
| +#define CHROME_BROWSER_SYNC_ENGINE_AUTHENTICATOR_H_ |
| + |
| +#include <string> |
| + |
| +#include "base/basictypes.h" |
| +#include "base/port.h" |
| + |
| +namespace sync_pb { |
| +class UserIdentification; |
| +} |
| + |
| +namespace browser_sync { |
| + |
| +class ServerConnectionManager; |
| +class UserSettings; |
| + |
| +class Authenticator { |
| + public: |
| + // Single return enum. |
| + enum AuthenticationResult { |
| + SUCCESS = 0, |
| + // We couldn't log on because we don't have saved credentials. |
| + NO_SAVED_CREDENTIALS, |
| + // We can't reach auth server (i.e. we're offline or server's down). |
| + NOT_CONNECTED, |
| + // Server's up, but we're down. |
| + SERVICE_DOWN, |
| + // We contacted the server, but the response didn't make sense. |
| + CORRUPT_SERVER_RESPONSE, |
| + // Bad username/password. |
| + BAD_CREDENTIALS, |
| + // Credentials are fine, but the user hasn't signed up. |
| + USER_NOT_ACTIVATED, |
| + |
| + // Return values for internal use. |
| + |
| + // We will never return this to the user unless they call AuthenticateToken |
| + // directly. Other auth functions retry and then return |
| + // CORRUPT_SERVER_RESPONSE. |
| + // TODO(sync): Implement retries. |
| + BAD_AUTH_TOKEN, |
| + // We should never return this, it's a placeholder during development. |
| + // TODO(sync): Remove this |
| + UNSPECIFIC_ERROR_RETURN, |
| + }; |
| + |
| + // Constructor. This class will keep the connection authenticated. |
| + // TODO(sync): Make it work as described. |
| + // TODO(sync): Require a UI callback mechanism. |
| + Authenticator(ServerConnectionManager* manager, UserSettings* settings); |
| + |
| + // Constructor for a simple authenticator used for programmatic login from |
| + // test programs. |
| + explicit Authenticator(ServerConnectionManager* manager); |
| + |
| + // This version of Authenticate tries to use saved credentials, if we have |
| + // any. |
| + AuthenticationResult Authenticate(); |
| + |
| + // If save_credentials is set we save the long-lived auth token to local disk. |
| + // In all cases we save the username and password in memory (if given) so we |
| + // can refresh the long-lived auth token if it expires. |
| + // Also we save a 10-bit hash of the password to allow offline login. |
| + // TODO(sync): Make it work as described. |
| + // TODO(sync): Arguments for desired domain. |
| + AuthenticationResult Authenticate(std::string username, std::string password, |
| + bool save_credentials); |
| + // A version of the auth token to authenticate cookie portion of |
| + // authentication. It uses the new proto buffer based call instead of the HTTP |
| + // GET based one we currently use. |
| + // Can return one of SUCCESS, SERVICE_DOWN, CORRUPT_SERVER_RESPONSE, |
| + // USER_NOT_ACTIVATED or BAD_AUTH_TOKEN. See above for the meaning of these |
| + // values. |
| + // TODO(sync): Make this function private when we're done. |
| + AuthenticationResult AuthenticateToken(std::string auth_token); |
| + |
| + const char * display_email() const { return display_email_.c_str(); } |
| + const char * display_name() const { return display_name_.c_str(); } |
|
idana
2009/09/10 05:44:37
nit: "const char *" -> "const char*" in above two
|
| + private: |
| + // Stores the information in the UserIdentification returned from the server. |
| + AuthenticationResult HandleSuccessfulTokenRequest( |
| + const sync_pb::UserIdentification* user); |
| + // The server connection manager that we're looking after. |
| + ServerConnectionManager* server_connection_manager_; |
| + // Returns SUCCESS or the value that should be returned to the user. |
| + std::string display_email_; |
| + std::string display_name_; |
| + std::string obfuscated_id_; |
| + UserSettings* const settings_; |
| +}; |
| + |
| +} // namespace browser_sync |
| + |
| +#endif // CHROME_BROWSER_SYNC_ENGINE_AUTHENTICATOR_H_ |
| Property changes on: chrome\browser\sync\engine\authenticator.h |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |