from paste.cascade import Cascade
from paste.registry import RegistryManager
from paste.urlparser import StaticURLParser
+from paste.auth.basic import AuthBasicHandler
from paste.deploy.converters import asbool
from pylons import config
from pylons.middleware import ErrorHandler, StatusCodeRedirect
from bluechips.config.environment import load_environment
-from bluechips.lib.permissions import BlueChipUser, DummyAuthenticate
+from bluechips.lib.permissions import (BlueChipUser, DummyAuthenticate,
+ authenticate)
def make_app(global_conf, full_stack=True, **app_conf):
"""Create a Pylons WSGI application and return it
# CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
app = authkit.authorize.middleware(app, BlueChipUser())
- app = DummyAuthenticate(app, app_conf)
# Routing/Session/Cache Middleware
app = RoutesMiddleware(app, config['routes.map'])
# 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])
+ status_codes = [400, 401, 403, 404]
+ if not asbool(config.get('debug')):
+ status_codes.append(500)
+ app = StatusCodeRedirect(app, status_codes)
# Establish the Registry for this application
app = RegistryManager(app)
# server is handling this static content, remove the following 3 lines)
static_app = StaticURLParser(config['pylons.paths']['static_files'])
app = Cascade([static_app, app])
+ app = AuthBasicHandler(app, 'BlueChips', authenticate)
+ app = DummyAuthenticate(app, app_conf)
return app