source: TI12-security/trunk/NDGSecurity/python/ndg_security_test/ndg/security/test/integration/openidprovider/openidprovider.py @ 7793

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI12-security/trunk/NDGSecurity/python/ndg_security_test/ndg/security/test/integration/openidprovider/openidprovider.py@7793
Revision 7793, 2.6 KB checked in by pjkersha, 10 years ago (diff)

Incomplete - task 16: NDG Security 2.x.x - incl. updated Paster templates

  • Revising openidprovider integration test.
  • Property svn:keywords set to Id
Line 
1#!/usr/bin/env python
2"""NDG Security test harness for security web services middleware stack
3
4NERC DataGrid Project
5
6"""
7__author__ = "P J Kershaw"
8__date__ = "20/11/08"
9__copyright__ = "(C) 2009 Science and Technology Facilities Council"
10__contact__ = "Philip.Kershaw@stfc.ac.uk"
11__revision__ = "$Id$"
12import os
13from os.path import dirname, abspath, join
14     
15from OpenSSL import SSL
16
17from ndg.security.test.unit import BaseTestCase, TEST_CONFIG_DIR
18from ndg.security.test.unit.wsgi import PasteDeployAppServer
19
20INI_FILEPATH = 'securityservices.ini'
21
22os.environ['NDGSEC_INTEGRATION_TEST_DIR'] = os.path.dirname(os.path.dirname(
23                                                                    __file__))
24os.environ[BaseTestCase.configDirEnvVarName] = TEST_CONFIG_DIR
25
26import optparse
27
28# To start run
29# $ paster serve services.ini or run this file as a script, see
30# $ ./securityservicesapp.py -h
31if __name__ == '__main__':   
32    cfgFileName = INI_FILEPATH
33    cfgFilePath = os.path.join(dirname(abspath(__file__)), cfgFileName) 
34       
35    parser = optparse.OptionParser()
36    parser.add_option("-p",
37                      "--port",
38                      dest="port",
39                      default=7443,
40                      type='int',
41                      help="port number to run under")
42
43    parser.add_option("-s",
44                      "--with-ssl",
45                      dest="withSSL",
46                      default='True',
47                      help="Run with SSL")
48
49    parser.add_option("-c",
50                      "--conf",
51                      dest="configFilePath",
52                      default=cfgFilePath,
53                      help="Configuration file path")
54   
55    # Initialise test user database
56    from ndg.security.test.unit import BaseTestCase
57    BaseTestCase.initDb()
58   
59    opt = parser.parse_args()[0]
60   
61    if opt.withSSL.lower() == 'true':
62        certFilePath = os.path.join(BaseTestCase.NDGSEC_TEST_CONFIG_DIR, 
63                                    'pki', 
64                                    'localhost.crt')
65        priKeyFilePath = os.path.join(BaseTestCase.NDGSEC_TEST_CONFIG_DIR, 
66                                      'pki', 
67                                      'localhost.key')
68       
69        ssl_context = SSL.Context(SSL.SSLv23_METHOD)
70        ssl_context.set_options(SSL.OP_NO_SSLv2)
71   
72        ssl_context.use_privatekey_file(priKeyFilePath)
73        ssl_context.use_certificate_file(certFilePath)
74    else:
75        ssl_context = None
76
77    server = PasteDeployAppServer(cfgFilePath=opt.configFilePath, 
78                                  port=opt.port,
79                                  ssl_context=ssl_context) 
80    server.start()
Note: See TracBrowser for help on using the repository browser.