diff --git a/congress/auth.py b/congress/auth.py index 9cdf4470f..5b0884246 100644 --- a/congress/auth.py +++ b/congress/auth.py @@ -22,6 +22,7 @@ from oslo_middleware import request_id import webob.dec import webob.exc +from congress.common import config from congress.common import wsgi from congress import context @@ -67,6 +68,7 @@ class CongressKeystoneContext(wsgi.Middleware): def pipeline_factory(loader, global_conf, **local_conf): """Create a paste pipeline based on the 'auth_strategy' config option.""" + config.set_config_defaults() pipeline = local_conf[cfg.CONF.auth_strategy] pipeline = pipeline.split() filters = [loader.get_filter(n) for n in pipeline[:-1]] diff --git a/congress/common/config.py b/congress/common/config.py index ade552322..80f7c212f 100644 --- a/congress/common/config.py +++ b/congress/common/config.py @@ -21,6 +21,7 @@ import os from oslo_config import cfg from oslo_db import options as db_options from oslo_log import log as logging +from oslo_middleware import cors from oslo_policy import opts as policy_opts from congress.managers import datasource as datasource_mgr @@ -106,3 +107,27 @@ def find_paste_config(): config_path = os.path.abspath(config_path) LOG.info(_("Config paste file: %s"), config_path) return config_path + + +def set_config_defaults(): + """This method updates all configuration default values.""" + # CORS Defaults + # TODO(krotscheck): Update with https://review.openstack.org/#/c/285368/ + cfg.set_defaults(cors.CORS_OPTS, + allow_headers=['X-Auth-Token', + 'X-OpenStack-Request-ID', + 'X-Identity-Status', + 'X-Roles', + 'X-Service-Catalog', + 'X-User-Id', + 'X-Tenant-Id'], + expose_headers=['X-Auth-Token', + 'X-OpenStack-Request-ID', + 'X-Subject-Token', + 'X-Service-Token'], + allow_methods=['GET', + 'PUT', + 'POST', + 'DELETE', + 'PATCH'] + ) diff --git a/congress/server/congress_server.py b/congress/server/congress_server.py old mode 100644 new mode 100755 index e2161b91c..e612c7442 --- a/congress/server/congress_server.py +++ b/congress/server/congress_server.py @@ -94,6 +94,7 @@ def main(): # event loop -> wsgi server -> webapp -> resource manager paste_config = config.find_paste_config() + config.set_config_defaults() servers = [] servers.append(create_api_server(paste_config, "congress", diff --git a/etc/api-paste.ini b/etc/api-paste.ini index 27d300cd8..39be570b5 100644 --- a/etc/api-paste.ini +++ b/etc/api-paste.ini @@ -32,6 +32,3 @@ paste.filter_factory = keystonemiddleware.auth_token:filter_factory [filter:cors] paste.filter_factory = oslo_middleware.cors:filter_factory oslo_config_project = congress -latent_allow_headers = X-Auth-Token, X-Identity-Status, X-Roles, X-Service-Catalog, X-User-Id, X-Tenant-Id, X-OpenStack-Request-ID -latent_expose_headers = X-Auth-Token, X-Subject-Token, X-Service-Token, X-OpenStack-Request-ID -latent_allow_methods = GET, PUT, POST, DELETE, PATCH diff --git a/setup.cfg b/setup.cfg index c240dedff..aff3bbc14 100644 --- a/setup.cfg +++ b/setup.cfg @@ -32,6 +32,9 @@ setup-hooks = oslo.config.opts = congress = congress.opts:list_opts +oslo.config.opts.defaults = + congress = congress.common.config:set_config_defaults + console_scripts = congress-server = congress.server.congress_server:main congress-db-manage = congress.db.migration.cli:main