| 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 """A bare-bones test server for testing cloud policy support. | 5 """A bare-bones test server for testing cloud policy support. |
| 6 | 6 |
| 7 This implements a simple cloud policy test server that can be used to test | 7 This implements a simple cloud policy test server that can be used to test |
| 8 chrome's device management service client. The policy information is read from | 8 chrome's device management service client. The policy information is read from |
| 9 the file named device_management in the server's data directory. It contains | 9 the file named device_management in the server's data directory. It contains |
| 10 enforced and recommended policies for the device and user scope, and a list | 10 enforced and recommended policies for the device and user scope, and a list |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 543 for request in msg.policy_request.request: | 543 for request in msg.policy_request.request: |
| 544 if (request.policy_type in | 544 if (request.policy_type in |
| 545 ('google/android/user', | 545 ('google/android/user', |
| 546 'google/chromeos/device', | 546 'google/chromeos/device', |
| 547 'google/chromeos/publicaccount', | 547 'google/chromeos/publicaccount', |
| 548 'google/chromeos/user', | 548 'google/chromeos/user', |
| 549 'google/chrome/user', | 549 'google/chrome/user', |
| 550 'google/ios/user')): | 550 'google/ios/user')): |
| 551 fetch_response = response.policy_response.response.add() | 551 fetch_response = response.policy_response.response.add() |
| 552 self.ProcessCloudPolicy(request, token_info, fetch_response, username) | 552 self.ProcessCloudPolicy(request, token_info, fetch_response, username) |
| 553 elif request.policy_type == 'google/chrome/extension': | 553 elif (request.policy_type in |
| 554 ('google/chrome/extension', |
| 555 'google/chromeos/signinextension')): |
| 554 self.ProcessCloudPolicyForExtensions( | 556 self.ProcessCloudPolicyForExtensions( |
| 555 request, response.policy_response, token_info, username) | 557 request, response.policy_response, token_info, username) |
| 556 else: | 558 else: |
| 557 fetch_response.error_code = 400 | 559 fetch_response.error_code = 400 |
| 558 fetch_response.error_message = 'Invalid policy_type' | 560 fetch_response.error_message = 'Invalid policy_type' |
| 559 | 561 |
| 560 return (200, response) | 562 return (200, response) |
| 561 | 563 |
| 562 def ProcessAutoEnrollment(self, msg): | 564 def ProcessAutoEnrollment(self, msg): |
| 563 """Handles an auto-enrollment check request. | 565 """Handles an auto-enrollment check request. |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 | 804 |
| 803 Args: | 805 Args: |
| 804 request: The PolicyFetchRequest that triggered this handler. | 806 request: The PolicyFetchRequest that triggered this handler. |
| 805 response: The DevicePolicyResponse message for the response. Multiple | 807 response: The DevicePolicyResponse message for the response. Multiple |
| 806 PolicyFetchResponses will be appended to this message. | 808 PolicyFetchResponses will be appended to this message. |
| 807 token_info: The token extracted from the request. | 809 token_info: The token extracted from the request. |
| 808 username: The username for the response. May be None. | 810 username: The username for the response. May be None. |
| 809 """ | 811 """ |
| 810 # Send one PolicyFetchResponse for each extension that has | 812 # Send one PolicyFetchResponse for each extension that has |
| 811 # configuration data at the server. | 813 # configuration data at the server. |
| 812 ids = self.server.ListMatchingComponents('google/chrome/extension') | 814 ids = self.server.ListMatchingComponents(request.policy_type) |
| 813 for settings_entity_id in ids: | 815 for settings_entity_id in ids: |
| 814 # Reuse the extension policy request, to trigger the same signature | 816 # Reuse the extension policy request, to trigger the same signature |
| 815 # type in the response. | 817 # type in the response. |
| 816 request.settings_entity_id = settings_entity_id | 818 request.settings_entity_id = settings_entity_id |
| 817 fetch_response = response.response.add() | 819 fetch_response = response.response.add() |
| 818 self.ProcessCloudPolicy(request, token_info, fetch_response, username) | 820 self.ProcessCloudPolicy(request, token_info, fetch_response, username) |
| 819 # Don't do key rotations for these messages. | 821 # Don't do key rotations for these messages. |
| 820 fetch_response.ClearField('new_public_key') | 822 fetch_response.ClearField('new_public_key') |
| 821 fetch_response.ClearField('new_public_key_signature') | 823 fetch_response.ClearField('new_public_key_signature') |
| 822 fetch_response.ClearField('new_public_key_verification_signature') | 824 fetch_response.ClearField('new_public_key_verification_signature') |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 856 payload = self.server.ReadPolicyFromDataDir(policy_key, settings) | 858 payload = self.server.ReadPolicyFromDataDir(policy_key, settings) |
| 857 if payload is None: | 859 if payload is None: |
| 858 self.GatherUserPolicySettings(settings, policy.get(policy_key, {})) | 860 self.GatherUserPolicySettings(settings, policy.get(policy_key, {})) |
| 859 payload = settings.SerializeToString() | 861 payload = settings.SerializeToString() |
| 860 elif msg.policy_type == 'google/chromeos/device': | 862 elif msg.policy_type == 'google/chromeos/device': |
| 861 settings = dp.ChromeDeviceSettingsProto() | 863 settings = dp.ChromeDeviceSettingsProto() |
| 862 payload = self.server.ReadPolicyFromDataDir(policy_key, settings) | 864 payload = self.server.ReadPolicyFromDataDir(policy_key, settings) |
| 863 if payload is None: | 865 if payload is None: |
| 864 self.GatherDevicePolicySettings(settings, policy.get(policy_key, {})) | 866 self.GatherDevicePolicySettings(settings, policy.get(policy_key, {})) |
| 865 payload = settings.SerializeToString() | 867 payload = settings.SerializeToString() |
| 866 elif msg.policy_type == 'google/chrome/extension': | 868 elif msg.policy_type in ('google/chrome/extension', |
| 869 'google/chromeos/signinextension'): |
| 867 settings = ep.ExternalPolicyData() | 870 settings = ep.ExternalPolicyData() |
| 868 payload = self.server.ReadPolicyFromDataDir(policy_key, settings) | 871 payload = self.server.ReadPolicyFromDataDir(policy_key, settings) |
| 869 if payload is None: | 872 if payload is None: |
| 870 payload = self.CreatePolicyForExternalPolicyData(policy_key) | 873 payload = self.CreatePolicyForExternalPolicyData(policy_key) |
| 871 else: | 874 else: |
| 872 response.error_code = 400 | 875 response.error_code = 400 |
| 873 response.error_message = 'Invalid policy type' | 876 response.error_message = 'Invalid policy type' |
| 874 return | 877 return |
| 875 else: | 878 else: |
| 876 response.error_code = 400 | 879 response.error_code = 400 |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1149 'google/chrome/user', | 1152 'google/chrome/user', |
| 1150 'google/chrome/extension' | 1153 'google/chrome/extension' |
| 1151 ], | 1154 ], |
| 1152 dm.DeviceRegisterRequest.USER: [ | 1155 dm.DeviceRegisterRequest.USER: [ |
| 1153 'google/chromeos/user', | 1156 'google/chromeos/user', |
| 1154 'google/chrome/extension' | 1157 'google/chrome/extension' |
| 1155 ], | 1158 ], |
| 1156 dm.DeviceRegisterRequest.DEVICE: [ | 1159 dm.DeviceRegisterRequest.DEVICE: [ |
| 1157 'google/chromeos/device', | 1160 'google/chromeos/device', |
| 1158 'google/chromeos/publicaccount', | 1161 'google/chromeos/publicaccount', |
| 1159 'google/chrome/extension' | 1162 'google/chrome/extension', |
| 1163 'google/chromeos/signinextension' |
| 1160 ], | 1164 ], |
| 1161 dm.DeviceRegisterRequest.ANDROID_BROWSER: [ | 1165 dm.DeviceRegisterRequest.ANDROID_BROWSER: [ |
| 1162 'google/android/user' | 1166 'google/android/user' |
| 1163 ], | 1167 ], |
| 1164 dm.DeviceRegisterRequest.IOS_BROWSER: [ | 1168 dm.DeviceRegisterRequest.IOS_BROWSER: [ |
| 1165 'google/ios/user' | 1169 'google/ios/user' |
| 1166 ], | 1170 ], |
| 1167 dm.DeviceRegisterRequest.TT: ['google/chromeos/user', | 1171 dm.DeviceRegisterRequest.TT: ['google/chromeos/user', |
| 1168 'google/chrome/user'], | 1172 'google/chrome/user'], |
| 1169 } | 1173 } |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1422 if (self.options.log_to_console): | 1426 if (self.options.log_to_console): |
| 1423 logger.addHandler(logging.StreamHandler()) | 1427 logger.addHandler(logging.StreamHandler()) |
| 1424 if (self.options.log_file): | 1428 if (self.options.log_file): |
| 1425 logger.addHandler(logging.FileHandler(self.options.log_file)) | 1429 logger.addHandler(logging.FileHandler(self.options.log_file)) |
| 1426 | 1430 |
| 1427 testserver_base.TestServerRunner.run_server(self) | 1431 testserver_base.TestServerRunner.run_server(self) |
| 1428 | 1432 |
| 1429 | 1433 |
| 1430 if __name__ == '__main__': | 1434 if __name__ == '__main__': |
| 1431 sys.exit(PolicyServerRunner().main()) | 1435 sys.exit(PolicyServerRunner().main()) |
| OLD | NEW |