Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7344)

Unified Diff: chrome/common/net/notifier/communicator/single_login_attempt.cc

Issue 2749004: Token-based authentication for chromoting. (Closed)
Patch Set: - Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/common/net/notifier/communicator/gaia_token_pre_xmpp_auth.cc ('k') | remoting/base/constants.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/net/notifier/communicator/single_login_attempt.cc
diff --git a/chrome/common/net/notifier/communicator/single_login_attempt.cc b/chrome/common/net/notifier/communicator/single_login_attempt.cc
index 706c8f29253f9f5aa22cb5dc2ad04e31ea8f30db..7781c38772f11046e299a2e282913bd9a818d9e1 100644
--- a/chrome/common/net/notifier/communicator/single_login_attempt.cc
+++ b/chrome/common/net/notifier/communicator/single_login_attempt.cc
@@ -12,6 +12,7 @@
#include "chrome/common/net/notifier/communicator/connection_options.h"
#include "chrome/common/net/notifier/communicator/connection_settings.h"
#include "chrome/common/net/notifier/communicator/const_communicator.h"
+#include "chrome/common/net/notifier/communicator/gaia_token_pre_xmpp_auth.h"
#include "chrome/common/net/notifier/communicator/login_failure.h"
#include "chrome/common/net/notifier/communicator/login_settings.h"
#include "chrome/common/net/notifier/communicator/product_info.h"
@@ -23,8 +24,6 @@
#include "talk/base/taskrunner.h"
#include "talk/base/win32socketinit.h"
#include "talk/xmllite/xmlelement.h"
-#include "talk/xmpp/prexmppauth.h"
-#include "talk/xmpp/saslcookiemechanism.h"
#include "talk/xmpp/xmppclient.h"
#include "talk/xmpp/xmppclientsettings.h"
#include "talk/xmpp/constants.h"
@@ -52,91 +51,6 @@ static void GetClientErrorInformation(
}
}
-namespace {
-
-const char kGaiaAuthMechanism[] = "X-GOOGLE-TOKEN";
-
-// This class looks for the X-GOOGLE-TOKEN auth mechanism and uses
-// that instead of the default auth mechanism (PLAIN).
-class GaiaTokenPreXmppAuth : public buzz::PreXmppAuth {
- public:
- GaiaTokenPreXmppAuth(
- const std::string& username,
- const std::string& token,
- const std::string& token_service)
- : username_(username),
- token_(token),
- token_service_(token_service) {}
-
- virtual ~GaiaTokenPreXmppAuth() {}
-
- // buzz::PreXmppAuth (-buzz::SaslHandler) implementation. We stub
- // all the methods out as we don't actually do any authentication at
- // this point.
-
- virtual void StartPreXmppAuth(
- const buzz::Jid& jid,
- const talk_base::SocketAddress& server,
- const talk_base::CryptString& pass,
- const std::string& auth_cookie) {
- SignalAuthDone();
- }
-
- virtual bool IsAuthDone() const { return true; }
-
- virtual bool IsAuthorized() const { return true; }
-
- virtual bool HadError() const { return false; }
-
- virtual int GetError() const { return 0; }
-
- virtual buzz::CaptchaChallenge GetCaptchaChallenge() const {
- return buzz::CaptchaChallenge();
- }
-
- virtual std::string GetAuthCookie() const { return std::string(); }
-
- // buzz::SaslHandler implementation.
-
- virtual std::string ChooseBestSaslMechanism(
- const std::vector<std::string> & mechanisms, bool encrypted) {
- return (std::find(mechanisms.begin(),
- mechanisms.end(), kGaiaAuthMechanism) !=
- mechanisms.end()) ? kGaiaAuthMechanism : "";
- }
-
- virtual buzz::SaslMechanism* CreateSaslMechanism(
- const std::string& mechanism) {
- return
- (mechanism == kGaiaAuthMechanism) ?
- new buzz::SaslCookieMechanism(
- kGaiaAuthMechanism, username_, token_, token_service_)
- : NULL;
- }
-
- // TODO(akalin): remove this code.
- virtual bool GetTlsServerInfo(const talk_base::SocketAddress& server,
- std::string* tls_server_hostname,
- std::string* tls_server_domain) const {
- std::string server_ip = server.IPAsString();
- if ((server_ip == buzz::STR_TALK_GOOGLE_COM) ||
- (server_ip == buzz::STR_TALKX_L_GOOGLE_COM)) {
- // For Gaia auth, the talk.google.com server expects you to use
- // "gmail.com" in the stream, and expects the domain certificate
- // to be "gmail.com" as well.
- *tls_server_hostname = buzz::STR_GMAIL_COM;
- *tls_server_domain = buzz::STR_GMAIL_COM;
- return true;
- }
- return false;
- }
-
- private:
- std::string username_, token_, token_service_;
-};
-
-} // namespace
-
SingleLoginAttempt::SingleLoginAttempt(talk_base::TaskParent* parent,
LoginSettings* login_settings,
bool successful_connection)
« no previous file with comments | « chrome/common/net/notifier/communicator/gaia_token_pre_xmpp_auth.cc ('k') | remoting/base/constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698