Change ownership of AuthManager as it's needed by DeviceRegistrationInfo
BUG=25766813
Change-Id: I832e0ee9e440ecc4a754dd6d4dacd3c171fbab21
Reviewed-on: https://weave-review.googlesource.com/1825
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/src/privet/privet_manager.cc b/src/privet/privet_manager.cc
index a308eec..16c552e 100644
--- a/src/privet/privet_manager.cc
+++ b/src/privet/privet_manager.cc
@@ -47,8 +47,12 @@
DnsServiceDiscovery* dns_sd,
HttpServer* http_server,
Wifi* wifi,
+ AuthManager* auth_manager,
DeviceRegistrationInfo* device,
ComponentManager* component_manager) {
+ CHECK(auth_manager);
+ CHECK(device);
+
disable_security_ = device->GetSettings().disable_security;
device_ = DeviceDelegate::CreateDefault(
@@ -58,19 +62,9 @@
component_manager);
cloud_observer_.Add(cloud_.get());
- auth_.reset(new AuthManager(device->GetSettings().secret,
- http_server->GetHttpsCertificateFingerprint()));
security_.reset(new SecurityManager(
- auth_.get(), device->GetSettings().pairing_modes,
+ auth_manager, device->GetSettings().pairing_modes,
device->GetSettings().embedded_code, disable_security_, task_runner_));
- if (device->GetSettings().secret.empty()) {
- // TODO(vitalybuka): Post all Config::Transaction to avoid following.
- task_runner_->PostDelayedTask(
- FROM_HERE,
- base::Bind(&Manager::SaveDeviceSecret, weak_ptr_factory_.GetWeakPtr(),
- base::Unretained(device->GetMutableConfig())),
- {});
- }
network->AddConnectionChangedCallback(
base::Bind(&Manager::OnConnectivityChanged, base::Unretained(this)));
@@ -174,10 +168,5 @@
OnChanged();
}
-void Manager::SaveDeviceSecret(Config* config) {
- Config::Transaction transaction(config);
- transaction.set_secret(auth_->GetSecret());
-}
-
} // namespace privet
} // namespace weave
diff --git a/src/privet/privet_manager.h b/src/privet/privet_manager.h
index 1342584..371d843 100644
--- a/src/privet/privet_manager.h
+++ b/src/privet/privet_manager.h
@@ -50,6 +50,7 @@
provider::DnsServiceDiscovery* dns_sd,
provider::HttpServer* http_server,
provider::Wifi* wifi,
+ AuthManager* auth_manager,
DeviceRegistrationInfo* device,
ComponentManager* component_manager);
@@ -78,13 +79,10 @@
void OnChanged();
void OnConnectivityChanged();
- void SaveDeviceSecret(Config* config);
-
bool disable_security_{false};
provider::TaskRunner* task_runner_{nullptr};
std::unique_ptr<CloudDelegate> cloud_;
std::unique_ptr<DeviceDelegate> device_;
- std::unique_ptr<AuthManager> auth_;
std::unique_ptr<SecurityManager> security_;
std::unique_ptr<WifiBootstrapManager> wifi_bootstrap_manager_;
std::unique_ptr<Publisher> publisher_;
diff --git a/src/privet/security_manager.h b/src/privet/security_manager.h
index 26a42d4..cab042a 100644
--- a/src/privet/security_manager.h
+++ b/src/privet/security_manager.h
@@ -84,6 +84,8 @@
void RegisterPairingListeners(const PairingStartListener& on_start,
const PairingEndListener& on_end);
+ const AuthManager* GetAuthManager() const { return auth_manager_; }
+
private:
FRIEND_TEST_ALL_PREFIXES(SecurityManagerTest, ThrottlePairing);
// Allows limited number of new sessions without successful authorization.