當前位置: 首頁>>代碼示例>>Python>>正文


Python cors.CORS屬性代碼示例

本文整理匯總了Python中oslo_middleware.cors.CORS屬性的典型用法代碼示例。如果您正苦於以下問題:Python cors.CORS屬性的具體用法?Python cors.CORS怎麽用?Python cors.CORS使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在oslo_middleware.cors的用法示例。


在下文中一共展示了cors.CORS屬性的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: load_app

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def load_app(conf, not_implemented_middleware=True):
    global APPCONFIGS

    # Build the WSGI app
    cfg_path = conf.api.paste_config
    if not os.path.isabs(cfg_path):
        cfg_path = conf.find_file(cfg_path)

    if cfg_path is None or not os.path.exists(cfg_path):
        LOG.debug("No api-paste configuration file found! Using default.")
        cfg_path = os.path.abspath(pkg_resources.resource_filename(
            __name__, "api-paste.ini"))

    config = dict(conf=conf,
                  not_implemented_middleware=not_implemented_middleware)
    configkey = str(uuid.uuid4())
    APPCONFIGS[configkey] = config

    LOG.info("WSGI config used: %s", cfg_path)

    appname = "gnocchi+" + conf.api.auth_mode
    app = deploy.loadapp("config:" + cfg_path, name=appname,
                         global_conf={'configkey': configkey})
    return http_proxy_to_wsgi.HTTPProxyToWSGI(
        cors.CORS(app, conf=conf), conf=conf) 
開發者ID:gnocchixyz,項目名稱:gnocchi,代碼行數:27,代碼來源:app.py

示例2: test_application

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_application(req):
    if req.path_info == '/server_cors':
        # Mirror back the origin in the request.
        response = webob.Response(status=200)
        response.headers['Access-Control-Allow-Origin'] = \
            req.headers['Origin']
        response.headers['X-Server-Generated-Response'] = '1'
        return response

    if req.path_info == '/server_cors_vary':
        # Mirror back the origin in the request.
        response = webob.Response(status=200)
        response.headers['Vary'] = 'Custom-Vary'
        return response

    if req.path_info == '/server_no_cors':
        # Send a response with no CORS headers.
        response = webob.Response(status=200)
        return response

    if req.method == 'OPTIONS':
        raise exc.HTTPNotFound()

    return 'Hello World' 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:26,代碼來源:test_cors.py

示例3: test_expose_headers

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_expose_headers(self):
        """CORS Specification Section 6.1.4

        If the list of exposed headers is not empty add one or more
        Access-Control-Expose-Headers headers, with as values the header field
        names given in the list of exposed headers.
        """
        for method in self.methods:
            request = webob.Request.blank('/')
            request.method = method
            request.headers['Origin'] = 'http://headers.example.com'
            response = request.get_response(self.application)
            self.assertCORSResponse(response,
                                    status='200 OK',
                                    allow_origin='http://headers.example.com',
                                    max_age=None,
                                    allow_methods=None,
                                    allow_headers=None,
                                    allow_credentials=None,
                                    expose_headers='X-Header-1,X-Header-2',
                                    has_content_type=True) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:23,代碼來源:test_cors.py

示例4: test_application_options_response

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_application_options_response(self):
        """Assert that an application provided OPTIONS response is honored.

        If the underlying application, via middleware or other, provides a
        CORS response, its response should be honored.
        """
        test_origin = 'http://creds.example.com'

        request = webob.Request.blank('/server_cors')
        request.method = "GET"
        request.headers['Origin'] = test_origin
        request.headers['Access-Control-Request-Method'] = 'GET'

        response = request.get_response(self.application)

        # If the regular CORS handling catches this request, it should set
        # the allow credentials header. This makes sure that it doesn't.
        self.assertNotIn('Access-Control-Allow-Credentials', response.headers)
        self.assertEqual(response.headers['Access-Control-Allow-Origin'],
                         test_origin)
        self.assertEqual(response.headers['X-Server-Generated-Response'],
                         '1') 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:24,代碼來源:test_cors.py

示例5: test_no_origin_header

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_no_origin_header(self):
        """CORS Specification Section 6.2.1

        If the Origin header is not present terminate this set of steps. The
        request is outside the scope of this specification.
        """
        request = webob.Request.blank('/')
        request.method = "OPTIONS"
        response = request.get_response(self.application)
        self.assertCORSResponse(response,
                                status='200 OK',
                                allow_origin=None,
                                max_age=None,
                                allow_methods=None,
                                allow_headers=None,
                                allow_credentials=None,
                                expose_headers=None) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:19,代碼來源:test_cors.py

示例6: test_invalid_method

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_invalid_method(self):
        """CORS Specification Section 6.2.3

        If method is not a case-sensitive match for any of the values in
        list of methods do not set any additional headers and terminate this
        set of steps.
        """
        request = webob.Request.blank('/')
        request.method = "OPTIONS"
        request.headers['Origin'] = 'http://get.example.com'
        request.headers['Access-Control-Request-Method'] = 'get'
        response = request.get_response(self.application)
        self.assertCORSResponse(response,
                                status='200 OK',
                                allow_origin=None,
                                max_age=None,
                                allow_methods=None,
                                allow_headers=None,
                                allow_credentials=None,
                                expose_headers=None) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:22,代碼來源:test_cors.py

示例7: test_no_parse_request_headers

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_no_parse_request_headers(self):
        """CORS Specification Section 6.2.4

        If there are no Access-Control-Request-Headers headers let header
        field-names be the empty list.

        If parsing failed do not set any additional headers and terminate
        this set of steps. The request is outside the scope of this
        specification.
        """
        request = webob.Request.blank('/')
        request.method = "OPTIONS"
        request.headers['Origin'] = 'http://headers.example.com'
        request.headers['Access-Control-Request-Method'] = 'GET'
        request.headers['Access-Control-Request-Headers'] = 'value with spaces'
        response = request.get_response(self.application)
        self.assertCORSResponse(response,
                                status='200 OK',
                                allow_origin=None,
                                max_age=None,
                                allow_methods=None,
                                allow_headers=None,
                                allow_credentials=None,
                                expose_headers=None) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:26,代碼來源:test_cors.py

示例8: test_no_request_headers

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_no_request_headers(self):
        """CORS Specification Section 6.2.4

        If there are no Access-Control-Request-Headers headers let header
        field-names be the empty list.
        """
        request = webob.Request.blank('/')
        request.method = "OPTIONS"
        request.headers['Origin'] = 'http://headers.example.com'
        request.headers['Access-Control-Request-Method'] = 'GET'
        request.headers['Access-Control-Request-Headers'] = ''
        response = request.get_response(self.application)
        self.assertCORSResponse(response,
                                status='200 OK',
                                allow_origin='http://headers.example.com',
                                max_age=None,
                                allow_methods='GET',
                                allow_headers=None,
                                allow_credentials=None,
                                expose_headers=None) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:22,代碼來源:test_cors.py

示例9: test_request_headers_not_permitted

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_request_headers_not_permitted(self):
        """CORS Specification Section 6.2.4, 6.2.6

        If there are no Access-Control-Request-Headers headers let header
        field-names be the empty list.

        If any of the header field-names is not a ASCII case-insensitive
        match for any of the values in list of headers do not set any
        additional headers and terminate this set of steps.
        """
        request = webob.Request.blank('/')
        request.method = "OPTIONS"
        request.headers['Origin'] = 'http://headers.example.com'
        request.headers['Access-Control-Request-Method'] = 'GET'
        request.headers['Access-Control-Request-Headers'] = 'X-Not-Exposed,' \
                                                            'X-Never-Exposed'
        response = request.get_response(self.application)
        self.assertCORSResponse(response,
                                status='200 OK',
                                allow_origin=None,
                                max_age=None,
                                allow_methods=None,
                                allow_headers=None,
                                allow_credentials=None,
                                expose_headers=None) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:27,代碼來源:test_cors.py

示例10: test_optional_max_age

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_optional_max_age(self):
        """CORS Specification Section 6.2.8

        Optionally add a single Access-Control-Max-Age header with as value
        the amount of seconds the user agent is allowed to cache the result of
        the request.
        """
        request = webob.Request.blank('/')
        request.method = "OPTIONS"
        request.headers['Origin'] = 'http://cached.example.com'
        request.headers['Access-Control-Request-Method'] = 'GET'
        response = request.get_response(self.application)
        self.assertCORSResponse(response,
                                status='200 OK',
                                allow_origin='http://cached.example.com',
                                max_age=3600,
                                allow_methods='GET',
                                allow_headers=None,
                                allow_credentials=None,
                                expose_headers=None) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:22,代碼來源:test_cors.py

示例11: setUp

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def setUp(self):
        super(CORSTestWildcard, self).setUp()

        fixture = self.config_fixture  # Line length accommodation
        fixture.load_raw_values(group='cors',
                                allowed_origin='http://default.example.com',
                                allow_credentials='True',
                                max_age='',
                                expose_headers='',
                                allow_methods='GET,PUT,POST,DELETE,HEAD',
                                allow_headers='')

        fixture.load_raw_values(group='cors.wildcard',
                                allowed_origin='*',
                                allow_methods='GET')

        # Now that the config is set up, create our application.
        self.application = cors.CORS(test_application, self.config) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:20,代碼來源:test_cors.py

示例12: _wrap_app

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def _wrap_app(app):
    """Wraps wsgi app with additional middlewares."""
    app = request_id.RequestId(app)

    if CONF.audit.enabled:
        try:
            app = audit_middleware.AuditMiddleware(
                app,
                audit_map_file=CONF.audit.audit_map_file,
                ignore_req_list=CONF.audit.ignore_req_list
            )
        except (EnvironmentError, OSError,
                audit_middleware.PycadfAuditApiConfigError) as e:
            raise exceptions.InputFileError(
                file_name=CONF.audit.audit_map_file,
                reason=e
            )

    if cfg.CONF.api_settings.auth_strategy == constants.KEYSTONE:
        app = keystone.SkippingAuthProtocol(app, {})

    app = http_proxy_to_wsgi.HTTPProxyToWSGI(app)

    # This should be the last middleware in the list (which results in
    # it being the first in the middleware chain). This is to ensure
    # that any errors thrown by other middleware, such as an auth
    # middleware - are annotated with CORS headers, and thus accessible
    # by the browser.
    app = cors.CORS(app, cfg.CONF)
    cors.set_defaults(
        allow_headers=['X-Auth-Token', 'X-Openstack-Request-Id'],
        allow_methods=['GET', 'PUT', 'POST', 'DELETE'],
        expose_headers=['X-Auth-Token', 'X-Openstack-Request-Id']
    )

    return app 
開發者ID:openstack,項目名稱:octavia,代碼行數:38,代碼來源:app.py

示例13: test_cor_config_sections_with_defaults

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_cor_config_sections_with_defaults(self):
        '''Assert cors.* config sections with default values work.'''

        # Set up the config fixture.
        self.config_fixture.load_raw_values(group='cors.subdomain')

        # Now that the config is set up, create our application.
        self.application = cors.CORS(test_application, self.config) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:10,代碼來源:test_cors.py

示例14: test_simple_header_response

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_simple_header_response(self):
        """CORS Specification Section 3

        A header is said to be a simple header if the header field name is an
        ASCII case-insensitive match for Accept, Accept-Language, or
        Content-Language or if it is an ASCII case-insensitive match for
        Content-Type and the header field value media type (excluding
        parameters) is an ASCII case-insensitive match for
        application/x-www-form-urlencoded, multipart/form-data, or text/plain.

        NOTE: We are not testing the media type cases.
        """

        simple_headers = ','.join([
            'accept',
            'accept-language',
            'content-language',
            'content-type'
        ])

        request = webob.Request.blank('/')
        request.method = "OPTIONS"
        request.headers['Origin'] = 'http://valid.example.com'
        request.headers['Access-Control-Request-Method'] = 'GET'
        request.headers['Access-Control-Request-Headers'] = simple_headers
        response = request.get_response(self.application)
        self.assertCORSResponse(response,
                                status='200 OK',
                                allow_origin='http://valid.example.com',
                                max_age=None,
                                allow_methods='GET',
                                allow_headers=simple_headers,
                                allow_credentials=None,
                                expose_headers=None) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:36,代碼來源:test_cors.py

示例15: test_credentials

# 需要導入模塊: from oslo_middleware import cors [as 別名]
# 或者: from oslo_middleware.cors import CORS [as 別名]
def test_credentials(self):
        """CORS Specification Section 6.2.7

        If the resource supports credentials add a single
        Access-Control-Allow-Origin header, with the value of the Origin header
        as value, and add a single Access-Control-Allow-Credentials header with
        the case-sensitive string "true" as value.

        Otherwise, add a single Access-Control-Allow-Origin header, with either
        the value of the Origin header or the string "*" as value.

        NOTE: We never use the "*" as origin.
        """
        request = webob.Request.blank('/')
        request.method = "OPTIONS"
        request.headers['Origin'] = 'http://creds.example.com'
        request.headers['Access-Control-Request-Method'] = 'GET'
        response = request.get_response(self.application)
        self.assertCORSResponse(response,
                                status='200 OK',
                                allow_origin='http://creds.example.com',
                                max_age=None,
                                allow_methods='GET',
                                allow_headers=None,
                                allow_credentials="true",
                                expose_headers=None) 
開發者ID:openstack,項目名稱:oslo.middleware,代碼行數:28,代碼來源:test_cors.py


注:本文中的oslo_middleware.cors.CORS屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。