summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorDong Ma <winterma.dong@gmail.com>2015-09-17 15:19:12 +0800
committerMichael Krotscheck <krotscheck@gmail.com>2016-01-14 09:46:07 -0800
commit45e1d22607785e5d7bbc5f2a58f7cf8aa4761426 (patch)
tree15100baa68f9cb12b03203195e1dd61e7c4f99d7 /etc
parent333024b69aa7810e78aef85e5171cfd6dbd6b740 (diff)
downloadceilometer-45e1d22607785e5d7bbc5f2a58f7cf8aa4761426.tar.gz
Added CORS support to Ceilometer
This adds the CORS support middleware to Ceilometer, allowing a deployer to optionally configure rules under which a javascript client may break the single-origin policy and access the API directly. Included are Ceilometer's custom headers, so that anyone activating this middleware does not have to explicitly enable them. The paste.ini method of deploying the middleware was chosen, because it needs to be able to annotate responses created by keystonemiddleware. OpenStack CrossProject Spec: http://specs.openstack.org/openstack/openstack-specs/specs/cors-support.html Oslo_Middleware Docs: http://docs.openstack.org/developer/oslo.middleware/cors.html OpenStack Cloud Admin Guide: http://docs.openstack.org/admin-guide-cloud/cross_project_cors.html Change-Id: I90d2a53c40e3c353abe3cf37bd7deb3a07aeb043
Diffstat (limited to 'etc')
-rw-r--r--etc/ceilometer/api_paste.ini8
-rw-r--r--etc/ceilometer/ceilometer-config-generator.conf1
2 files changed, 8 insertions, 1 deletions
diff --git a/etc/ceilometer/api_paste.ini b/etc/ceilometer/api_paste.ini
index 95d50c56..cfb0c38a 100644
--- a/etc/ceilometer/api_paste.ini
+++ b/etc/ceilometer/api_paste.ini
@@ -5,7 +5,7 @@
# Remove authtoken from the pipeline if you don't want to use keystone authentication
[pipeline:main]
-pipeline = request_id authtoken api-server
+pipeline = cors request_id authtoken api-server
[app:api-server]
paste.app_factory = ceilometer.api.app:app_factory
@@ -16,3 +16,9 @@ paste.filter_factory = keystonemiddleware.auth_token:filter_factory
[filter:request_id]
paste.filter_factory = oslo_middleware:RequestId.factory
+[filter:cors]
+paste.filter_factory = oslo_middleware.cors:filter_factory
+oslo_config_project = ceilometer
+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 \ No newline at end of file
diff --git a/etc/ceilometer/ceilometer-config-generator.conf b/etc/ceilometer/ceilometer-config-generator.conf
index 222df01f..4fc80454 100644
--- a/etc/ceilometer/ceilometer-config-generator.conf
+++ b/etc/ceilometer/ceilometer-config-generator.conf
@@ -6,6 +6,7 @@ namespace = oslo.concurrency
namespace = oslo.db
namespace = oslo.log
namespace = oslo.messaging
+namespace = oslo.middleware.cors
namespace = oslo.policy
namespace = oslo.service.service
namespace = keystonemiddleware.auth_token