Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(55)

Side by Side Diff: net/tools/testserver/testserver.py

Issue 12183017: Verify the signature on user cloud policy downloads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comment Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2013 The Chromium Authors. All rights reserved. 2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """This is a simple HTTP/FTP/TCP/UDP/BASIC_AUTH_PROXY/WEBSOCKET server used for 6 """This is a simple HTTP/FTP/TCP/UDP/BASIC_AUTH_PROXY/WEBSOCKET server used for
7 testing Chrome. 7 testing Chrome.
8 8
9 It supports several test URLs, as specified by the handlers in TestPageHandler. 9 It supports several test URLs, as specified by the handlers in TestPageHandler.
10 By default, it listens on an ephemeral port and sends the port number back to 10 By default, it listens on an ephemeral port and sends the port number back to
(...skipping 1576 matching lines...) Expand 10 before | Expand all | Expand 10 after
1587 1587
1588 if not self._ShouldHandleRequest("/device_management"): 1588 if not self._ShouldHandleRequest("/device_management"):
1589 return False 1589 return False
1590 1590
1591 raw_request = self.ReadRequestBody() 1591 raw_request = self.ReadRequestBody()
1592 1592
1593 if not self.server._device_management_handler: 1593 if not self.server._device_management_handler:
1594 import device_management 1594 import device_management
1595 policy_path = os.path.join(self.server.data_dir, 'device_management') 1595 policy_path = os.path.join(self.server.data_dir, 'device_management')
1596 self.server._device_management_handler = ( 1596 self.server._device_management_handler = (
1597 device_management.TestServer(policy_path, self.server.policy_keys)) 1597 device_management.TestServer(policy_path))
1598 1598
1599 http_response, raw_reply = ( 1599 http_response, raw_reply = (
1600 self.server._device_management_handler.HandleRequest(self.path, 1600 self.server._device_management_handler.HandleRequest(self.path,
1601 self.headers, 1601 self.headers,
1602 raw_request)) 1602 raw_request))
1603 self.send_response(http_response) 1603 self.send_response(http_response)
1604 if (http_response == 200): 1604 if (http_response == 200):
1605 self.send_header('Content-Type', 'application/x-protobuffer') 1605 self.send_header('Content-Type', 'application/x-protobuffer')
1606 self.end_headers() 1606 self.end_headers()
1607 self.wfile.write(raw_reply) 1607 self.wfile.write(raw_reply)
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
1876 self.options.tls_intolerant) 1876 self.options.tls_intolerant)
1877 print 'HTTPS server started on %s:%d...' % (host, server.server_port) 1877 print 'HTTPS server started on %s:%d...' % (host, server.server_port)
1878 else: 1878 else:
1879 server = HTTPServer((host, port), TestPageHandler) 1879 server = HTTPServer((host, port), TestPageHandler)
1880 print 'HTTP server started on %s:%d...' % (host, server.server_port) 1880 print 'HTTP server started on %s:%d...' % (host, server.server_port)
1881 1881
1882 server.data_dir = self.__make_data_dir() 1882 server.data_dir = self.__make_data_dir()
1883 server.file_root_url = self.options.file_root_url 1883 server.file_root_url = self.options.file_root_url
1884 server_data['port'] = server.server_port 1884 server_data['port'] = server.server_port
1885 server._device_management_handler = None 1885 server._device_management_handler = None
1886 server.policy_keys = self.options.policy_keys
1887 elif self.options.server_type == SERVER_WEBSOCKET: 1886 elif self.options.server_type == SERVER_WEBSOCKET:
1888 # Launch pywebsocket via WebSocketServer. 1887 # Launch pywebsocket via WebSocketServer.
1889 logger = logging.getLogger() 1888 logger = logging.getLogger()
1890 logger.addHandler(logging.StreamHandler()) 1889 logger.addHandler(logging.StreamHandler())
1891 # TODO(toyoshim): Remove following os.chdir. Currently this operation 1890 # TODO(toyoshim): Remove following os.chdir. Currently this operation
1892 # is required to work correctly. It should be fixed from pywebsocket side. 1891 # is required to work correctly. It should be fixed from pywebsocket side.
1893 os.chdir(self.__make_data_dir()) 1892 os.chdir(self.__make_data_dir())
1894 websocket_options = WebSocketOptions(host, port, '.') 1893 websocket_options = WebSocketOptions(host, port, '.')
1895 if self.options.cert_and_key_file: 1894 if self.options.cert_and_key_file:
1896 websocket_options.use_tls = True 1895 websocket_options.use_tls = True
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
2029 self.option_parser.add_option('--ssl-bulk-cipher', action='append', 2028 self.option_parser.add_option('--ssl-bulk-cipher', action='append',
2030 help='Specify the bulk encryption ' 2029 help='Specify the bulk encryption '
2031 'algorithm(s) that will be accepted by the ' 2030 'algorithm(s) that will be accepted by the '
2032 'SSL server. Valid values are "aes256", ' 2031 'SSL server. Valid values are "aes256", '
2033 '"aes128", "3des", "rc4". If omitted, all ' 2032 '"aes128", "3des", "rc4". If omitted, all '
2034 'algorithms will be used. This option may ' 2033 'algorithms will be used. This option may '
2035 'appear multiple times, indicating ' 2034 'appear multiple times, indicating '
2036 'multiple algorithms should be enabled.'); 2035 'multiple algorithms should be enabled.');
2037 self.option_parser.add_option('--file-root-url', default='/files/', 2036 self.option_parser.add_option('--file-root-url', default='/files/',
2038 help='Specify a root URL for files served.') 2037 help='Specify a root URL for files served.')
2039 self.option_parser.add_option('--policy-key', action='append',
2040 dest='policy_keys',
2041 help='Specify a path to a PEM-encoded '
2042 'private key to use for policy signing. May '
2043 'be specified multiple times in order to '
2044 'load multipe keys into the server. If the '
2045 'server has multiple keys, it will rotate '
2046 'through them in at each request a '
2047 'round-robin fashion. The server will '
2048 'generate a random key if none is specified '
2049 'on the command line.')
2050 2038
2051 2039
2052 if __name__ == '__main__': 2040 if __name__ == '__main__':
2053 sys.exit(ServerRunner().main()) 2041 sys.exit(ServerRunner().main())
OLDNEW
« net/tools/testserver/device_management.py ('K') | « net/tools/testserver/device_management.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698