Skip to content
Snippets Groups Projects
Commit e43eb563 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

WebUI component:

- updated cookie name to prevent cross-instance session data leakage. otherwise, selected topology in one instance, is used in other instances.
- added Slice component as a dependency of WebUI
parent 3c5a4d72
No related branches found
No related tags found
2 merge requests!54Release 2.0.0,!24Integrate NFV-SDN'22 demo
......@@ -12,15 +12,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import os, sys, logging
import hashlib, sys, logging
from prometheus_client import start_http_server
from common.Constants import ServiceNameEnum
from common.Settings import (
ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, get_log_level, get_metrics_port, get_service_baseurl_http,
get_service_port_http, get_setting, wait_for_environment_variables)
ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, get_log_level, get_metrics_port,
get_service_baseurl_http, get_service_port_http, get_setting, wait_for_environment_variables)
from webui.service import create_app
from webui.Config import MAX_CONTENT_LENGTH, HOST, SECRET_KEY, DEBUG
def create_unique_session_cookie_name() -> str:
hostname = get_setting('HOSTNAME')
if hostname is None: return 'session'
hasher = hashlib.blake2b(digest_size=8)
hasher.update(hostname.encode('UTF-8'))
return 'session:{:s}'.format(str(hasher.hexdigest()))
def main():
log_level = get_log_level()
logging.basicConfig(level=log_level)
......@@ -33,6 +40,8 @@ def main():
get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC),
get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST ),
get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC),
get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST ),
get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC),
])
logger.info('Starting...')
......@@ -49,6 +58,7 @@ def main():
app = create_app(use_config={
'SECRET_KEY': SECRET_KEY,
'MAX_CONTENT_LENGTH': MAX_CONTENT_LENGTH,
'SESSION_COOKIE_NAME': create_unique_session_cookie_name(),
}, web_app_root=web_app_root)
app.run(host=host, port=service_port, debug=debug)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment