Files
@ 9a70fe918a81
Branch filter:
Location: kallithea/pylons_app/config/middleware.py - annotation
9a70fe918a81
2.5 KiB
text/x-python
fixed error controller __before__ behavior,
564e40829f80 2e1247e62c5b 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 a8ea3ce3cdc4 a8ea3ce3cdc4 564e40829f80 5f30a6d558dc 2e1247e62c5b 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 5f30a6d558dc 5f30a6d558dc 5f30a6d558dc 5f30a6d558dc 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 2e1247e62c5b 2e1247e62c5b 564e40829f80 2e1247e62c5b 8b06c420491d 564e40829f80 564e40829f80 fac1f62a1d71 8b06c420491d a8ea3ce3cdc4 a8ea3ce3cdc4 8bdec09436cb 8b06c420491d 71ffa932799d 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 e47d1db5ef20 564e40829f80 e47d1db5ef20 71ffa932799d c8162373f214 8bdec09436cb c8162373f214 564e40829f80 564e40829f80 564e40829f80 2e1247e62c5b 2e1247e62c5b 2e1247e62c5b 2e1247e62c5b 2e1247e62c5b 183c06406127 2e1247e62c5b 5f30a6d558dc 564e40829f80 | """Pylons middleware initialization"""
from beaker.middleware import SessionMiddleware
from paste.cascade import Cascade
from paste.registry import RegistryManager
from paste.urlparser import StaticURLParser
from paste.deploy.converters import asbool
from pylons.middleware import ErrorHandler, StatusCodeRedirect
from pylons.wsgiapp import PylonsApp
from routes.middleware import RoutesMiddleware
from pylons_app.lib.middleware.simplehg import SimpleHg
from pylons_app.lib.middleware.https_fixup import HttpsFixup
from pylons_app.config.environment import load_environment
def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
"""Create a Pylons WSGI application and return it
``global_conf``
The inherited configuration for this application. Normally from
the [DEFAULT] section of the Paste ini file.
``full_stack``
Whether or not this application provides a full WSGI stack (by
default, meaning it handles its own exceptions and errors).
Disable full_stack when this application is "managed" by
another WSGI middleware.
``app_conf``
The application's local configuration. Normally specified in
the [app:<name>] section of the Paste ini file (where <name>
defaults to main).
"""
# Configure the Pylons environment
config = load_environment(global_conf, app_conf)
# The Pylons WSGI app
app = PylonsApp(config=config)
# Routing/Session/Cache Middleware
app = RoutesMiddleware(app, config['routes.map'])
app = SessionMiddleware(app, config)
# CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
#set the https based on HTTP_X_URL_SCHEME
app = SimpleHg(app, config)
if asbool(full_stack):
# Handle Python exceptions
app = ErrorHandler(app, global_conf, **config['pylons.errorware'])
# Display error documents for 401, 403, 404 status codes (and
# 500 when debug is disabled)
if asbool(config['debug']):
app = StatusCodeRedirect(app)
else:
app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])
#enable https redirets based on HTTP_X_URL_SCHEME set by proxy
app = HttpsFixup(app)
# Establish the Registry for this application
app = RegistryManager(app)
if asbool(static_files):
# Serve static files
static_app = StaticURLParser(config['pylons.paths']['static_files'])
app = Cascade([static_app, app])
app.config = config
return app
|