Merge "Change the uuid from websocket header to querystring"

This commit is contained in:
Jenkins
2017-05-19 18:22:32 +00:00
committed by Gerrit Code Review
2 changed files with 8 additions and 6 deletions

View File

@@ -403,7 +403,8 @@ class Manager(object):
try:
url = self.driver.get_websocket_url(container)
token = uuidutils.generate_uuid()
access_url = '%s?token=%s' % (CONF.websocket_proxy.base_url, token)
access_url = '%s?token=%s&uuid=%s' % (
CONF.websocket_proxy.base_url, token, container.uuid)
container.websocket_url = url
container.websocket_token = token
container.save(context)

View File

@@ -188,20 +188,21 @@ class ZunProxyRequestHandlerBase(object):
query = parse.query
token = urlparse.parse_qs(query).get("token", [""]).pop()
uuid = urlparse.parse_qs(query).get("uuid", [""]).pop()
dbapi = db_api._get_dbdriver_instance()
ctx = context.get_admin_context(all_tenants=True)
self.headerid = self.headers.get("User-Agent")
if uuidutils.is_uuid_like(self.headerid):
container = dbapi.get_container_by_uuid(ctx, self.headerid)
if uuidutils.is_uuid_like(uuid):
container = dbapi.get_container_by_uuid(ctx, uuid)
else:
container = dbapi.get_container_by_name(ctx, self.headerid)
container = dbapi.get_container_by_name(ctx, uuid)
if token != container.websocket_token:
raise exception.InvalidWebsocketToken(token)
access_url = '%s?token=%s' % (CONF.websocket_proxy.base_url, token)
access_url = '%s?token=%s&uuid=%s' % (CONF.websocket_proxy.base_url,
token, uuid)
# Verify Origin
expected_origin_hostname = self.headers.get('Host')