How is who configured in the who.config_file? You need to provide this information.
You may also want to run your scenario again to produce more logs for authentication i.e. AUTH_LOG=1 paster serve --reload development.ini Then provide these logs. That will further facilitate debugging. On Jul 10, 2:43 pm, kochhar <[email protected]> wrote: > Hi all, > > I'm adding an authentication layer to my app and I'm trying to return an error > using the abort() function. It is causing an Internal Server error (500) > instead > of returning a proper error response. I've tried with both abort(401) and > abort(404). debug is set to false in my app config. > > I found this irc > discussion:http://pylonshq.com/irclogs/%23pylons/%23pylons.2008-12-16.log.htmlbut > it > didn't shed much light on the issue. FWIW, I'm using pylons 0.9.6.1 > > Below is the code which aborts and my middleware setup, the stack trace from > paster is attached > > in lib/base.py: > class BaseController(WSGIController): > > def __call__(self, environ, start_response): > """Invoke the Controller""" > # WSGIController.__call__ dispatches to the Controller method > # the request is routed to. This routing information is > # available in environ['pylons.routes_dict'] > > identity = environ.get('repoze.who.identity') > if not identity or not identity.strip(): > abort(401) > > return WSGIController.__call__(self, environ, start_response) > > in config/middleware.py: > # Configure the Pylons environment > load_environment(global_conf, app_conf) > > # The Pylons WSGI app > app = PylonsApp() > > # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) > auth_required = app_conf.get('auth_required', 'true') > if asbool(auth_required): > # create the repoze.who authentication middleware > app = make_who_with_config(app, global_conf, > app_conf['who.config_file'], > app_conf['who.log_file'], > app_conf.get('who.log_level', 'debug')) > > if asbool(full_stack): > # Handle Python exceptions > app = ErrorHandler(app, global_conf, error_template=error_template, > **config['pylons.errorware']) > > # Display error documents for 401, 403, 404 status codes (and > # 500 when debug is disabled) > app = ErrorDocuments(app, global_conf, mapper=error_mapper, > **app_conf) > > # Establish the Registry for this application > app = RegistryManager(app) > > # Static files > javascripts_app = StaticJavascripts() > static_app = StaticURLParser(config['pylons.paths']['static_files']) > app = Cascade([static_app, javascripts_app, app]) > return app > > [traceback.txt4K ]Exception happened during processing of request from > ('127.0.0.1', 44090) > Traceback (most recent call last): > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/httpserver.py", > line 1068, in process_request_in_thread > self.finish_request(request, client_address) > File "/opt/lib/python2.6/SocketServer.py", line 320, in finish_request > self.RequestHandlerClass(request, client_address, self) > File "/opt/lib/python2.6/SocketServer.py", line 615, in __init__ > self.handle() > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/httpserver.py", > line 442, in handle > BaseHTTPRequestHandler.handle(self) > File "/opt/lib/python2.6/BaseHTTPServer.py", line 329, in handle > self.handle_one_request() > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/httpserver.py", > line 437, in handle_one_request > self.wsgi_execute() > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/httpserver.py", > line 287, in wsgi_execute > self.wsgi_start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/urlmap.py", > line 202, in __call__ > return app(environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/cascade.py", > line 130, in __call__ > return self.apps[-1](environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/registry.py", > line 375, in __call__ > app_iter = self.application(environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/recursive.py", > line 84, in __call__ > return middleware(environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/recursive.py", > line 47, in __call__ > return self.app(environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/errordocument.py", > line 84, in __call__ > return self.app(environ, keep_status_start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/recursive.py", > line 80, in __call__ > return self.application(environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/errordocument.py", > line 185, in __call__ > app_iter = self.application(environ, change_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Paste-1.7.3dev_r7858-py2.6.egg/paste/exceptions/errormiddleware.py", > line 138, in __call__ > return self.application(environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/repoze.who-1.0.13-py2.6.egg/repoze/who/middleware.py", > line 107, in __call__ > app_iter = app(environ, wrapper.wrap_start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Pylons-0.9.6.1-py2.6.egg/pylons/wsgiapp.py", > line 315, in __call__ > return self.app(environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Beaker-0.7.5-py2.6.egg/beaker/cache.py", > line 180, in __call__ > return self.app(environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Beaker-0.7.5-py2.6.egg/beaker/session.py", > line 405, in __call__ > response = self.wrap_app(environ, session_start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Routes-1.10.1-py2.6.egg/routes/middleware.py", > line 118, in __call__ > response = self.app(environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Pylons-0.9.6.1-py2.6.egg/pylons/wsgiapp.py", > line 95, in __call__ > response = self.dispatch(controller, environ, start_response) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Pylons-0.9.6.1-py2.6.egg/pylons/wsgiapp.py", > line 237, in dispatch > return controller(environ, start_response) > File "/home/kochhar/workspace/argus-trunk/argus/lib/base.py", line 25, in > __call__ > abort(401) > File > "/home/kochhar/workspace/argus-trunk/_install/lib/python2.6/site-packages/Pylons-0.9.6.1-py2.6.egg/pylons/controllers/util.py", > line 63, in abort > raise exc > HTTPUnauthorized: 401 Unauthorized > This server could not verify that you are authorized to > access the document you requested. Either you supplied the > wrong credentials (e.g., bad password), or your browser > does not understand how to supply the credentials required. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---
