Index: remoting/protocol/me2me_host_authenticator_factory.cc |
diff --git a/remoting/protocol/me2me_host_authenticator_factory.cc b/remoting/protocol/me2me_host_authenticator_factory.cc |
index d0deff1f5574e8d259404edd4718365b6f767f08..bd926da8b845a9024b012d71feed2c7255ba0451 100644 |
--- a/remoting/protocol/me2me_host_authenticator_factory.cc |
+++ b/remoting/protocol/me2me_host_authenticator_factory.cc |
@@ -61,12 +61,14 @@ class RejectingAuthenticator : public Authenticator { |
// static |
scoped_ptr<AuthenticatorFactory> |
Me2MeHostAuthenticatorFactory::CreateWithSharedSecret( |
+ const std::string& host_owner, |
const std::string& local_cert, |
scoped_refptr<RsaKeyPair> key_pair, |
const SharedSecretHash& shared_secret_hash, |
scoped_refptr<PairingRegistry> pairing_registry) { |
scoped_ptr<Me2MeHostAuthenticatorFactory> result( |
new Me2MeHostAuthenticatorFactory()); |
+ result->host_owner_ = host_owner; |
result->local_cert_ = local_cert; |
result->key_pair_ = key_pair; |
result->shared_secret_hash_ = shared_secret_hash; |
@@ -78,12 +80,14 @@ Me2MeHostAuthenticatorFactory::CreateWithSharedSecret( |
// static |
scoped_ptr<AuthenticatorFactory> |
Me2MeHostAuthenticatorFactory::CreateWithThirdPartyAuth( |
+ const std::string& host_owner, |
const std::string& local_cert, |
scoped_refptr<RsaKeyPair> key_pair, |
scoped_ptr<ThirdPartyHostAuthenticator::TokenValidatorFactory> |
token_validator_factory) { |
scoped_ptr<Me2MeHostAuthenticatorFactory> result( |
new Me2MeHostAuthenticatorFactory()); |
+ result->host_owner_ = host_owner; |
result->local_cert_ = local_cert; |
result->key_pair_ = key_pair; |
result->token_validator_factory_ = token_validator_factory.Pass(); |
@@ -107,18 +111,12 @@ scoped_ptr<Authenticator> Me2MeHostAuthenticatorFactory::CreateAuthenticator( |
const std::string& remote_jid, |
const buzz::XmlElement* first_message) { |
- size_t slash_pos = local_jid.find('/'); |
- if (slash_pos == std::string::npos) { |
- LOG(DFATAL) << "Invalid local JID:" << local_jid; |
- return scoped_ptr<Authenticator>(new RejectingAuthenticator()); |
- } |
- |
// Verify that the client's jid is an ASCII string, and then check |
// that the client has the same bare jid as the host, i.e. client's |
// full JID starts with host's bare jid. Comparison is case |
// insensitive. |
if (!IsStringASCII(remote_jid) || |
- !StartsWithASCII(remote_jid, local_jid.substr(0, slash_pos + 1), false)) { |
+ !StartsWithASCII(remote_jid, host_owner_ + '/', false)) { |
LOG(ERROR) << "Rejecting incoming connection from " << remote_jid; |
return scoped_ptr<Authenticator>(new RejectingAuthenticator()); |
} |