summaryrefslogtreecommitdiffstats
path: root/tests/test_ssl.py
diff options
context:
space:
mode:
authorDavanum Srinivas <dims@linux.vnet.ibm.com>2013-01-14 22:37:07 -0500
committerDavanum Srinivas <dims@linux.vnet.ibm.com>2013-01-15 11:16:29 -0500
commit7a4e3738ea8ae3f886d29555d3d3c67ac5b22412 (patch)
tree715de0e7a500e6a5fefd7a02bab12a2942d49c4b /tests/test_ssl.py
parente1abe0fca3ccff8fee425796de23899658403b0b (diff)
downloadkeystone-7a4e3738ea8ae3f886d29555d3d3c67ac5b22412.tar.gz
keystone-7a4e3738ea8ae3f886d29555d3d3c67ac5b22412.tar.xz
keystone-7a4e3738ea8ae3f886d29555d3d3c67ac5b22412.zip
Enhance wsgi to listen on ipv6 address
Check if the hostname is ipv6 and set the family appropriately. Add tests to ensure that IPv6 and IPv6 with SSL works properly. Change-Id: Ibcf0a9387691d124888c0c0540d4322b0a3b3d67
Diffstat (limited to 'tests/test_ssl.py')
-rw-r--r--tests/test_ssl.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/test_ssl.py b/tests/test_ssl.py
index d710867d..2096f342 100644
--- a/tests/test_ssl.py
+++ b/tests/test_ssl.py
@@ -81,6 +81,53 @@ class SSLTestCase(test.TestCase):
resp = conn.getresponse()
self.assertEqual(resp.status, 300)
+ def test_1way_ssl_with_ipv6_ok(self):
+ """
+ Make sure both public and admin API work with 1-way ipv6 & SSL.
+ """
+ self.public_server = self.serveapp('keystone', name='main',
+ cert=CERT, key=KEY, ca=CA,
+ host="::1", port=0)
+ self.admin_server = self.serveapp('keystone', name='admin',
+ cert=CERT, key=KEY, ca=CA,
+ host="::1", port=0)
+ # Verify Admin
+ conn = httplib.HTTPSConnection('::1', CONF.admin_port)
+ conn.request('GET', '/')
+ resp = conn.getresponse()
+ self.assertEqual(resp.status, 300)
+ # Verify Public
+ conn = httplib.HTTPSConnection('::1', CONF.public_port)
+ conn.request('GET', '/')
+ resp = conn.getresponse()
+ self.assertEqual(resp.status, 300)
+
+ def test_2way_ssl_with_ipv6_ok(self):
+ """
+ Make sure both public and admin API work with 2-way ipv6 & SSL.
+ Requires client certificate.
+ """
+ self.public_server = self.serveapp(
+ 'keystone', name='main', cert=CERT,
+ key=KEY, ca=CA, cert_required=True,
+ host="::1", port=0)
+ self.admin_server = self.serveapp(
+ 'keystone', name='admin', cert=CERT,
+ key=KEY, ca=CA, cert_required=True,
+ host="::1", port=0)
+ # Verify Admin
+ conn = httplib.HTTPSConnection(
+ '::1', CONF.admin_port, CLIENT, CLIENT)
+ conn.request('GET', '/')
+ resp = conn.getresponse()
+ self.assertEqual(resp.status, 300)
+ # Verify Public
+ conn = httplib.HTTPSConnection(
+ '::1', CONF.public_port, CLIENT, CLIENT)
+ conn.request('GET', '/')
+ resp = conn.getresponse()
+ self.assertEqual(resp.status, 300)
+
def test_2way_ssl_fail(self):
"""
Expect to fail when client does not present proper certificate.