Merge "Change the uuid from websocket header to querystring"
This commit is contained in:
@@ -403,7 +403,8 @@ class Manager(object):
|
|||||||
try:
|
try:
|
||||||
url = self.driver.get_websocket_url(container)
|
url = self.driver.get_websocket_url(container)
|
||||||
token = uuidutils.generate_uuid()
|
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_url = url
|
||||||
container.websocket_token = token
|
container.websocket_token = token
|
||||||
container.save(context)
|
container.save(context)
|
||||||
|
|||||||
@@ -188,20 +188,21 @@ class ZunProxyRequestHandlerBase(object):
|
|||||||
|
|
||||||
query = parse.query
|
query = parse.query
|
||||||
token = urlparse.parse_qs(query).get("token", [""]).pop()
|
token = urlparse.parse_qs(query).get("token", [""]).pop()
|
||||||
|
uuid = urlparse.parse_qs(query).get("uuid", [""]).pop()
|
||||||
|
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = db_api._get_dbdriver_instance()
|
||||||
ctx = context.get_admin_context(all_tenants=True)
|
ctx = context.get_admin_context(all_tenants=True)
|
||||||
self.headerid = self.headers.get("User-Agent")
|
|
||||||
|
|
||||||
if uuidutils.is_uuid_like(self.headerid):
|
if uuidutils.is_uuid_like(uuid):
|
||||||
container = dbapi.get_container_by_uuid(ctx, self.headerid)
|
container = dbapi.get_container_by_uuid(ctx, uuid)
|
||||||
else:
|
else:
|
||||||
container = dbapi.get_container_by_name(ctx, self.headerid)
|
container = dbapi.get_container_by_name(ctx, uuid)
|
||||||
|
|
||||||
if token != container.websocket_token:
|
if token != container.websocket_token:
|
||||||
raise exception.InvalidWebsocketToken(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
|
# Verify Origin
|
||||||
expected_origin_hostname = self.headers.get('Host')
|
expected_origin_hostname = self.headers.get('Host')
|
||||||
|
|||||||
Reference in New Issue
Block a user