| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/policy/core/common/cloud/cloud_policy_client.h" | 5 #include "components/policy/core/common/cloud/cloud_policy_client.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/guid.h" | 8 #include "base/guid.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 CloudPolicyClient::Observer::~Observer() {} | 43 CloudPolicyClient::Observer::~Observer() {} |
| 44 | 44 |
| 45 void CloudPolicyClient::Observer::OnRobotAuthCodesFetched( | 45 void CloudPolicyClient::Observer::OnRobotAuthCodesFetched( |
| 46 CloudPolicyClient* client) {} | 46 CloudPolicyClient* client) {} |
| 47 | 47 |
| 48 CloudPolicyClient::StatusProvider::~StatusProvider() {} | 48 CloudPolicyClient::StatusProvider::~StatusProvider() {} |
| 49 | 49 |
| 50 CloudPolicyClient::CloudPolicyClient( | 50 CloudPolicyClient::CloudPolicyClient( |
| 51 const std::string& machine_id, | 51 const std::string& machine_id, |
| 52 const std::string& machine_model, | 52 const std::string& machine_model, |
| 53 const std::string& verification_key_hash, |
| 53 UserAffiliation user_affiliation, | 54 UserAffiliation user_affiliation, |
| 54 StatusProvider* status_provider, | 55 StatusProvider* status_provider, |
| 55 DeviceManagementService* service, | 56 DeviceManagementService* service, |
| 56 scoped_refptr<net::URLRequestContextGetter> request_context) | 57 scoped_refptr<net::URLRequestContextGetter> request_context) |
| 57 : machine_id_(machine_id), | 58 : machine_id_(machine_id), |
| 58 machine_model_(machine_model), | 59 machine_model_(machine_model), |
| 60 verification_key_hash_(verification_key_hash), |
| 59 user_affiliation_(user_affiliation), | 61 user_affiliation_(user_affiliation), |
| 60 device_mode_(DEVICE_MODE_NOT_SET), | 62 device_mode_(DEVICE_MODE_NOT_SET), |
| 61 submit_machine_id_(false), | 63 submit_machine_id_(false), |
| 62 public_key_version_(-1), | 64 public_key_version_(-1), |
| 63 public_key_version_valid_(false), | 65 public_key_version_valid_(false), |
| 64 invalidation_version_(0), | 66 invalidation_version_(0), |
| 65 fetched_invalidation_version_(0), | 67 fetched_invalidation_version_(0), |
| 66 service_(service), // Can be NULL for unit tests. | 68 service_(service), // Can be NULL for unit tests. |
| 67 status_provider_(status_provider), // Can be NULL for unit tests. | 69 status_provider_(status_provider), // Can be NULL for unit tests. |
| 68 status_(DM_STATUS_SUCCESS), | 70 status_(DM_STATUS_SUCCESS), |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 | 156 |
| 155 // Build policy fetch requests. | 157 // Build policy fetch requests. |
| 156 em::DevicePolicyRequest* policy_request = request->mutable_policy_request(); | 158 em::DevicePolicyRequest* policy_request = request->mutable_policy_request(); |
| 157 for (NamespaceSet::iterator it = namespaces_to_fetch_.begin(); | 159 for (NamespaceSet::iterator it = namespaces_to_fetch_.begin(); |
| 158 it != namespaces_to_fetch_.end(); ++it) { | 160 it != namespaces_to_fetch_.end(); ++it) { |
| 159 em::PolicyFetchRequest* fetch_request = policy_request->add_request(); | 161 em::PolicyFetchRequest* fetch_request = policy_request->add_request(); |
| 160 fetch_request->set_policy_type(it->first); | 162 fetch_request->set_policy_type(it->first); |
| 161 if (!it->second.empty()) | 163 if (!it->second.empty()) |
| 162 fetch_request->set_settings_entity_id(it->second); | 164 fetch_request->set_settings_entity_id(it->second); |
| 163 | 165 |
| 164 #if defined(OS_CHROMEOS) | 166 // Request signed policy blobs to help prevent tampering on the client. |
| 165 // All policy types on ChromeOS ask for a signed policy blob. | |
| 166 fetch_request->set_signature_type(em::PolicyFetchRequest::SHA1_RSA); | 167 fetch_request->set_signature_type(em::PolicyFetchRequest::SHA1_RSA); |
| 167 #else | |
| 168 // Don't request signed blobs for desktop policy. | |
| 169 fetch_request->set_signature_type(em::PolicyFetchRequest::NONE); | |
| 170 #endif | |
| 171 if (public_key_version_valid_) | 168 if (public_key_version_valid_) |
| 172 fetch_request->set_public_key_version(public_key_version_); | 169 fetch_request->set_public_key_version(public_key_version_); |
| 173 | 170 |
| 171 if (!verification_key_hash_.empty()) |
| 172 fetch_request->set_verification_key_hash(verification_key_hash_); |
| 173 |
| 174 // These fields are included only in requests for chrome policy. | 174 // These fields are included only in requests for chrome policy. |
| 175 if (IsChromePolicy(it->first)) { | 175 if (IsChromePolicy(it->first)) { |
| 176 if (submit_machine_id_ && !machine_id_.empty()) | 176 if (submit_machine_id_ && !machine_id_.empty()) |
| 177 fetch_request->set_machine_id(machine_id_); | 177 fetch_request->set_machine_id(machine_id_); |
| 178 if (!last_policy_timestamp_.is_null()) { | 178 if (!last_policy_timestamp_.is_null()) { |
| 179 base::TimeDelta timestamp( | 179 base::TimeDelta timestamp( |
| 180 last_policy_timestamp_ - base::Time::UnixEpoch()); | 180 last_policy_timestamp_ - base::Time::UnixEpoch()); |
| 181 fetch_request->set_timestamp(timestamp.InMilliseconds()); | 181 fetch_request->set_timestamp(timestamp.InMilliseconds()); |
| 182 } | 182 } |
| 183 if (!invalidation_payload_.empty()) { | 183 if (!invalidation_payload_.empty()) { |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 | 449 |
| 450 void CloudPolicyClient::NotifyRobotAuthCodesFetched() { | 450 void CloudPolicyClient::NotifyRobotAuthCodesFetched() { |
| 451 FOR_EACH_OBSERVER(Observer, observers_, OnRobotAuthCodesFetched(this)); | 451 FOR_EACH_OBSERVER(Observer, observers_, OnRobotAuthCodesFetched(this)); |
| 452 } | 452 } |
| 453 | 453 |
| 454 void CloudPolicyClient::NotifyClientError() { | 454 void CloudPolicyClient::NotifyClientError() { |
| 455 FOR_EACH_OBSERVER(Observer, observers_, OnClientError(this)); | 455 FOR_EACH_OBSERVER(Observer, observers_, OnClientError(this)); |
| 456 } | 456 } |
| 457 | 457 |
| 458 } // namespace policy | 458 } // namespace policy |
| OLD | NEW |