Chromium Code Reviews| 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 72 import tlslite.utils.cryptomath | 72 import tlslite.utils.cryptomath |
| 73 import urlparse | 73 import urlparse |
| 74 | 74 |
| 75 # The name and availability of the json module varies in python versions. | 75 # The name and availability of the json module varies in python versions. |
| 76 try: | 76 try: |
| 77 import simplejson as json | 77 import simplejson as json |
| 78 except ImportError: | 78 except ImportError: |
| 79 try: | 79 try: |
| 80 import json | 80 import json |
| 81 except ImportError: | 81 except ImportError: |
| 82 logging.error('Could not import json') | |
|
Mattias Nissler (ping if slow)
2015/05/18 13:29:17
I think it's meanwhile fine to just import json un
| |
| 82 json = None | 83 json = None |
| 83 | 84 |
| 84 import asn1der | 85 import asn1der |
| 85 import testserver_base | 86 import testserver_base |
| 86 | 87 |
| 87 import device_management_backend_pb2 as dm | 88 import device_management_backend_pb2 as dm |
| 88 import cloud_policy_pb2 as cp | 89 import cloud_policy_pb2 as cp |
| 89 | 90 |
| 90 # Policy for extensions is not supported on Android nor iOS. | 91 # Policy for extensions is not supported on Android nor iOS. |
| 91 try: | 92 try: |
| 92 import chrome_extension_policy_pb2 as ep | 93 import chrome_extension_policy_pb2 as ep |
| 93 except ImportError: | 94 except ImportError: |
| 95 logging.error('Could not import chrome_extension_policy_pb2') | |
|
Mattias Nissler (ping if slow)
2015/05/18 13:29:17
This will add log spew I guess. A better way of do
| |
| 94 ep = None | 96 ep = None |
| 95 | 97 |
| 96 # Device policy is only available on Chrome OS builds. | 98 # Device policy is only available on Chrome OS builds. |
| 97 try: | 99 try: |
| 98 import chrome_device_policy_pb2 as dp | 100 import chrome_device_policy_pb2 as dp |
| 99 except ImportError: | 101 except ImportError: |
| 102 logging.error('Could not import chrome_device_policy_pb2') | |
| 100 dp = None | 103 dp = None |
| 101 | 104 |
| 102 # ASN.1 object identifier for PKCS#1/RSA. | 105 # ASN.1 object identifier for PKCS#1/RSA. |
| 103 PKCS1_RSA_OID = '\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01' | 106 PKCS1_RSA_OID = '\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01' |
| 104 | 107 |
| 105 # List of bad machine identifiers that trigger the |valid_serial_number_missing| | 108 # List of bad machine identifiers that trigger the |valid_serial_number_missing| |
| 106 # flag to be set set in the policy fetch response. | 109 # flag to be set set in the policy fetch response. |
| 107 BAD_MACHINE_IDS = [ '123490EN400015' ] | 110 BAD_MACHINE_IDS = [ '123490EN400015' ] |
| 108 | 111 |
| 109 # List of machines that trigger the server to send kiosk enrollment response | 112 # List of machines that trigger the server to send kiosk enrollment response |
| (...skipping 869 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 979 self._registered_tokens = json.loads(file_contents, strict=False) | 982 self._registered_tokens = json.loads(file_contents, strict=False) |
| 980 except IOError: | 983 except IOError: |
| 981 pass | 984 pass |
| 982 | 985 |
| 983 def GetPolicies(self): | 986 def GetPolicies(self): |
| 984 """Returns the policies to be used, reloaded form the backend file every | 987 """Returns the policies to be used, reloaded form the backend file every |
| 985 time this is called. | 988 time this is called. |
| 986 """ | 989 """ |
| 987 policy = {} | 990 policy = {} |
| 988 if json is None: | 991 if json is None: |
| 989 print 'No JSON module, cannot parse policy information' | 992 logging.error('No JSON module, cannot parse policy information') |
| 990 else : | 993 else : |
| 991 try: | 994 try: |
| 992 policy = json.loads(open(self.policy_path).read(), strict=False) | 995 policy = json.loads(open(self.policy_path).read(), strict=False) |
| 993 except IOError: | 996 except IOError: |
| 994 print 'Failed to load policy from %s' % self.policy_path | 997 logging.error('Failed to load policies from %s' % self.policy_path) |
| 995 return policy | 998 return policy |
| 996 | 999 |
| 997 def RegisterDevice(self, device_id, machine_id, type): | 1000 def RegisterDevice(self, device_id, machine_id, type): |
| 998 """Registers a device or user and generates a DM token for it. | 1001 """Registers a device or user and generates a DM token for it. |
| 999 | 1002 |
| 1000 Args: | 1003 Args: |
| 1001 device_id: The device identifier provided by the client. | 1004 device_id: The device identifier provided by the client. |
| 1002 | 1005 |
| 1003 Returns: | 1006 Returns: |
| 1004 The newly generated device token for the device. | 1007 The newly generated device token for the device. |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1284 if (self.options.log_to_console): | 1287 if (self.options.log_to_console): |
| 1285 logger.addHandler(logging.StreamHandler()) | 1288 logger.addHandler(logging.StreamHandler()) |
| 1286 if (self.options.log_file): | 1289 if (self.options.log_file): |
| 1287 logger.addHandler(logging.FileHandler(self.options.log_file)) | 1290 logger.addHandler(logging.FileHandler(self.options.log_file)) |
| 1288 | 1291 |
| 1289 testserver_base.TestServerRunner.run_server(self) | 1292 testserver_base.TestServerRunner.run_server(self) |
| 1290 | 1293 |
| 1291 | 1294 |
| 1292 if __name__ == '__main__': | 1295 if __name__ == '__main__': |
| 1293 sys.exit(PolicyServerRunner().main()) | 1296 sys.exit(PolicyServerRunner().main()) |
| OLD | NEW |