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) |